tags:

views:

484

answers:

1
+7  Q: 

Lambdas in Boo?

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?

+9  A: 

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
how do I accept a lambda as a method argument?
mmiika
I hope that helps!
Greg
Thanks, i see most cases just "as callable" is enough
mmiika
I wish .NET delegates were more like callable in boo. this would make life so much easier in so many cases...
Krzysztof Koźmic
@Krzysztof Koźmic: F#'s notation is nice: `TakeLambda : (int -> int) -> int`
Dario