Al tratar de resolver el problema 4Clojure "Universal Computation Engine" que implica reimplementar la evaluación, accidentalmente terminó llamando a algo como esto:¿Qué hacen los símbolos Clojure cuando se usan como funciones?
(apply '/ '(16 8))
en lugar de la intención:
(apply/'(16 8))
Esto tuvo el efecto secundario confuso de regresar 8
, lo que me hizo pensar que había estropeado mis matemáticas.
más tarde me di cuenta de mi error después de algún depuración-I estaba fallando para evaluar el símbolo /
antes de intentar llamar-y así di cuenta de que clojure.lang.Symbol
deben implementar clojure.lang.IFn
. Pero, ¿qué hace esa implementación do? Todo lo que puedo hacer es devolver nil
con un argumento, o el segundo argumento si es dado.
posible duplicado de [¿Qué sucede cuando paso argumentos a un símbolo de Clojure?] (Http://stackoverflow.com/questions/8219305/what-happens-when-i-pass-arguments-to-a-clojure- símbolo) – amalloy