лямбда-выражение в бу - PullRequest
1 голос
/ 09 августа 2011

доза boo понимает дерево выражений?

Я пытаюсь скомпилировать эту строку с резким развитием

exp as System.Linq.Expressions.Expression[of Func[of SomeClass, bool]] = { p as Text | return (p.Name == 'tttt') } 

, но резкое развитие вызывает эту ошибку

Cannot convert 'callable(testlinq.SomeClass) as bool' to 'System.Linq.Expressions.Expression[of System.Func[of testlinq.SomeClass, bool]]'. (BCE0022) 

1 Ответ

1 голос
/ 09 августа 2011

Boo имеет деревья выражений длиннее, чем C #.

http://ayende.com/blog/3065/meta-methods

[Meta]
static def verify(expr as Expression):
    return [|
        unless $expr:
            raise $(expr.ToCodeString())
    |]

IIRC Boo был разработан для поддержки макросов метапрограммирования (так же, как Lisp, Nemerle и многих других функциональных языков) и, таким образом, позволял полный доступ кAST любого фрагмента кода Boo.

Теперь все это выполняется из длинной памяти, поэтому я советую вам ознакомиться с документацией Boo для получения актуальной информации.

...