Powiedzmy mam ten cytat typu Quotations.Expr<(int -> int -> int)>
częściowe zastosowanie F # Notowań
<@ fun x y -> x + y @>
Chcę utworzyć funkcję fun reduce x expr
że kiedy nazywa się reduce 1 expr
będzie zasadniczo otrzymując
<@ fun y -> 1 + y @>
tj chcę częściowo zastosuj wycenę, aby wyprodukować inną ofertę.
Jestem pewien, że jest to wykonalne, czy ktoś ma jakieś myśli? Czy próbowano już wcześniej? Nie mogę niczego znaleźć.
Również nie jestem bardzo zaznajomiony z LISP-em, ale czy jest to zasadniczo podobne do tego, co mogę osiągnąć za pomocą makr LISP?
AKTUALIZACJA: Obniżając cytat, chciałbym ocenić części, które można ocenić w wynikowym drzewie wyrażeń.
Na przykład: reduce true <@ fun b x y -> if b then x + y else x - [email protected]>
powinien spowodować <@ fun x y -> x + y @>
.
Chociaż odpowiedź @kvb dostarcza użytecznych wskazówek dla uproszczenia wyrażeń, I polecam zadać inne konkretne pytanie. TAK naprawdę błyszczy na małe, samodzielne pytania i odpowiedzi. – CaringDev
Pojmowany @CaringDev – tejas