




Boo поддерживает синтаксис лямбда-выражения:
foo = {x|x+2}
seven = foo(5)
def TakeLambda(expr as callable(int) as int):
return expr(10)
twelve = TakeLambda(foo)
В этом примере foo - это функция, которая принимает число x и возвращает x + 2. Таким образом, вызов foo(5) возвращает число 7. TakeLambda - это функция, которая принимает foo и оценивает его как 10.
Я бы хотел, чтобы делегаты .NET были больше похожи на вызываемые в boo. во многих случаях это сделало бы жизнь намного проще ...
@Krzysztof Koźmic: Нотация F# хороша: TakeLambda : (int -> int) -> int
Спасибо, я вижу, что в большинстве случаев достаточно "как вызываемый"