How do you deal with lambdas in boo? Is "callable" the same thing? How do you define a method that takes a lambda as a parameter?
Asked
Active
Viewed 1,679 times
1 Answers
17
Boo does support lambda expression syntax:
foo = {x|x+2}
seven = foo(5)
def TakeLambda(expr as callable(int) as int):
return expr(10)
twelve = TakeLambda(foo)
In this example, foo
is a function that accepts a number x and returns x + 2. So calling foo(5)
returns the number 7. TakeLambda
is a function that accepts foo
and evaluates it at 10.

Greg
- 23,155
- 11
- 57
- 79
-
Thanks, i see most cases just "as callable" is enough – mmiika Nov 09 '08 at 08:22
-
I wish .NET delegates were more like callable in boo. this would make life so much easier in so many cases... – Krzysztof Kozmic Feb 27 '09 at 17:24
-
@Krzysztof Koźmic: F#'s notation is nice: `TakeLambda : (int -> int) -> int` – Dario Feb 15 '10 at 20:12