Странный синтаксис языка boo

Я столкнулся со странным синтаксисом в Руководстве по языку Boo:

setter = { value | a = value }

Что означает | оператор в смысле?


person Artem Tikhomirov    schedule 31.08.2008    source источник


Ответы (4)


Документация Boo, кажется, отсутствует в этой области - кажется, что

setter = { value | a = value }

является сокращением для

setter = def(value):
    a = value
person dF.    schedule 31.08.2008

Ну, никогда не используя Boo, я (образованный) думаю, что это для передачи параметра функциям в стиле лямбда закрытия. В этом случае { р | C } относится к анонимной функции, принимающей единственный параметр, привязанный к p в коде C.

person Adam Wright    schedule 31.08.2008

Адам прав. Цель примера — показать, что лямбда-выражения в boo имеют доступ для чтения и записи к охватывающей области.

person Frep D-Oronge    schedule 22.10.2008

Этот синтаксис для указания блоков кода (анонимных функций) был заимствован из Ruby и Разговор

person Mauricio Scheffer    schedule 23.11.2008