2008-11-09 12 views
8

Làm thế nào để bạn đối phó với lambdas trong boo? Là "có thể gọi" cùng một điều? Làm thế nào để bạn xác định một phương pháp mà có một lambda như một tham số?Lambdas in Boo?

Trả lời

17

Boo không biểu hiện sự ủng hộ lambda cú pháp:

foo = {x|x+2} 
seven = foo(5) 
def TakeLambda(expr as callable(int) as int): 
    return expr(10) 
twelve = TakeLambda(foo) 

Trong ví dụ này, foo là một chức năng chấp nhận một số x và trả về x + 2. Vì vậy, gọi foo(5) trả về số 7. TakeLambda là một hàm chấp nhận foo và đánh giá nó tại 10.

+0

làm cách nào để chấp nhận lambda làm đối số phương pháp? – mmiika

+0

Tôi hy vọng điều đó sẽ hữu ích! – Greg

+0

Cảm ơn, tôi thấy hầu hết các trường hợp chỉ là "có thể gọi" là đủ – mmiika