A feature that allows you do define an anonymous method, and a delegate pointing to that method, inline, in a manner similar to AnonymousInnerClass''''''es in JavaLanguage, or LambdaExpression''''''s in many FunctionalProgrammingLanguage''''''s (or BlocksInRuby/SmallTalk, etc... you get the picture). Use this feature now in BooLanguage: See http://boo.codehaus.org/Closures and http://boo.codehaus.org/Callable+Types class Some''''''Class: def Invoke''''''Method(): x = do(): Message''''''Box.Show("Hello") x() Or CsharpLanguage version 2 will have this feature: For example, the following CeeSharp v1.x code: class Some''''''Class { delegate void Some''''''Delegate(); public void Invoke''''''Method() { Some''''''Delegate del = new Some''''''Delegate(Some''''''Method); del(); } void Some''''''Method() { Message''''''Box.Show("Hello"); } } Can be rewritten as follows: class Some''''''Class { delegate void Some''''''Delegate(); public void Invoke''''''Method() { Some''''''Delegate del = delegate() { Message''''''Box.Show("Hello"); }; del(); } } They can also be used to create closures (see WhatIsClosure), and unlike AnonymousInnerClass''''''es, they have no restrictions on which variables from the surrounding lexical environment can be captured. They are true LexicalClosure''''''s. For example, the classic "counter" example of a closure can be implemented as follows: using System; delegate int Counter(); class C { static Counter Make''''''Counter() { int x = 0; Counter result = delegate { return ++x; }; return result; } static void Main() { Counter counter = Make''''''Counter(); Console.Write''''''Line(counter()); Console.Write''''''Line(counter()); Console.Write''''''Line(counter()); } } Here is that same code in BooLanguage (and it runs just as fast): callable Counter() as int //declaration is optional class C: static def Make''''''Counter() as Counter: x = 0 result = do: return x+=1 return result counter = C.Make''''''Counter() print counter() print counter() print counter() ---- CategoryCeeSharp