Скажем, у меня есть эта цитата типа Quotations.Expr<(int -> int -> int)>
Частичное применение F # Котировки
<@ fun x y -> x + y @>
Я хочу создать функцию fun reduce x expr
, что при вызове в качестве reduce 1 expr
бы существенно уступать
<@ fun y -> 1 + y @>
т.е. я хочу частично примените цитату, чтобы произвести другую цитату.
Я уверен, что это выполнимо, есть ли у кого-нибудь мысли? Проводилось ли это раньше? Кажется, ничего не может найти.
Также я не очень хорошо знаком с LISP - но по существу ли это похоже на то, что я могу достичь с помощью макросов LISP?
UPDATE: Уменьшая предложение, я хотел бы оценить детали, которые могут быть оценены в полученном дереве выражений.
Например: reduce true <@ fun b x y -> if b then x + y else x - [email protected]>
должно содержать <@ fun x y -> x + y @>
.
Хотя @kvb ответ дает полезные советы для упрощения выражений, я рекомендуем задать другой конкретный вопрос. SO действительно сияет для маленьких, автономных вопросов и ответов. – CaringDev
Understood @CaringDev – tejas