Pergunta
Como você lida com Lambdas em Boo? "Callable" é a mesma coisa? Como você define um método que toma um lambda como um parâmetro?
Solução
Boo suporta a sintaxe da expressão lambda:
foo = {x|x+2}
seven = foo(5)
def TakeLambda(expr as callable(int) as int):
return expr(10)
twelve = TakeLambda(foo)
Neste exemplo, foo
é uma função que aceita um número x e retorna x + 2. Então, chamando foo(5)
Retorna o número 7. TakeLambda
é uma função que aceita foo
e avalia -o em 10.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow