In clojure können Sie die Kartendatenstruktur oder das Schlüsselwort als Funktion verwenden, um die Karte nachzuschlagen.Wie clojure map und keyword eine Funktion sein könnten
(let [m {:foo "bar"}]
(get m :foo) ; -> "bar"
(:foo m) ; -> "bar"
(m :foo)) ; -> "bar"
Alle diese Ausdrücke gibt den Wert "bar" zurück. Implementierung, wie ist es möglich, Karte oder das Schlüsselwort als Funktion zu verwenden? Ist das ein Spezialfall, der in einen Clojure-Interpreter eingebaut ist, oder ist es etwas, das ich mit der Sprache neu erstellen könnte? Was passiert eigentlich unter der Haube?
Vars * sind * Funktionen, aber sicher müssen nicht * enthalten * Funktionen. Der Funktionsaufruf ruft vermutlich den Inhalt ab. – Thumbnail