Wie gehen Sie mit Lambdas in boo um? Ist "callable" das Gleiche? Wie definiert man eine Methode, die ein Lambda als Parameter annimmt?
Antwort
Zu viele Anzeigen?Boo unterstützt die Syntax von Lambda-Ausdrücken:
foo = {x|x+2}
seven = foo(5)
def TakeLambda(expr as callable(int) as int):
return expr(10)
twelve = TakeLambda(foo)
In diesem Beispiel, foo
ist eine Funktion, die eine Zahl x annimmt und x + 2 zurückgibt. Der Aufruf foo(5)
gibt die Zahl 7 zurück. TakeLambda
ist eine Funktion, die Folgendes annimmt foo
und wertet sie mit 10.