lassen Sie uns sagen, dass in Clojure habe ich eine Liste wie folgt definiert:Verwenden Liste als Clojure Funktionskörper
(def function-body '(+ a b))
Als nächstes möchte ich die function-body
Liste als effektive Körper einer Funktion nutzen, so möchte ich zu tun, so etwas wie:
(defn my-sum [a b] function-body)
zu produzieren:
(defn my-sum [a b] (+ a b))
die gültige Clojure Dorsch e.
Ist das in Clojure möglich? Wenn ich zu Makro zurückkehren sollte, welche Art von Erweiterung sollte ich verwenden?
Ich versuche Gebäude der Funktion Körper und Funktion Deklaration zu entkoppeln. Aber ich verstehe, dass der einfachste Ansatz vielleicht darin besteht, die Liste in eine Fn-Deklaration zu packen und die vollständige Deklaration auszuwerten. Was denkst du darüber? –
Zu welchem Zweck versuchen Sie, das Erstellen eines Funktionskörpers und einer Funktionsdeklaration zu entkoppeln. – RedDeckWins
Weil die Idee hier war, die Körper aus einer anderen Datenstruktur (d. H. Einer Karte) zu generieren und sie vielleicht zu manipulieren und sie dann in eine Funktionsdeklaration zu verpacken. Ich wollte Eval am Ende nicht verwenden, obwohl ich verstehe, dass Macro und Eval mir die Macht geben, alles zu tun, was ich will ... –