Beim Versuch, das 4Clojure Problem „Universal Computation Engine“ beteiligt Neuimplementierung Auswertung zu lösen, ich am Ende versehentlich etwas wie dieser Aufruf:Was machen Clojure-Symbole, wenn sie als Funktionen verwendet werden?
(apply '/ '(16 8))
anstatt der beabsichtigten:
(apply/'(16 8))
Dies hatte die verwirrende Nebenwirkung von der Rückkehr 8
, die mich denken ließ, dass ich meine Mathematik durcheinandergebracht hatte.
ich später erkennen meinen Fehler nach einiger Debugging-I das /
Symbol bewerten versagen, bevor Sie nennt es-und realisiert, so dass clojure.lang.Symbol
clojure.lang.IFn
implementieren müssen. Aber was macht diese Implementierung tun? Alles, was ich dazu bringen kann, ist nil
mit einem Argument zurückzugeben, oder das zweite Argument, falls angegeben.
mögliche Duplikate von [Was passiert, wenn ich Argumente an ein Clojure-Symbol übergebe?] (Http://stackoverflow.com/questions/8219305/what-happens-when-i-pass-arguments-to-a-clojure- Symbol) – amalloy