Si yo lo siguiente en clojure¿Las dependencias cíclicas de la función clojure están específicamente deshabilitadas por diseño, o es solo un comportamiento del lector?
(defn sub1a [a]
(cond
(= a 0) 0
true (sub1b (- a 1))))
(defn sub1b [a]
(cond
(= a 0) 0
true (sub1a (- a 1))))
(println (sub1a 10))
me sale el siguiente error:
java.lang.Exception: Unable to resolve symbol: sub1b in this context
Pero si hago lo siguiente:
(defn sub1a [a]
(cond
(= a 0) 0
true (- a 1)))
(defn sub1b [a]
(cond
(= a 0) 0
true (- a 1)))
(defn sub1a [a]
(cond
(= a 0) 0
true (sub1b (- a 1))))
(defn sub1b [a]
(cond
(= a 0) 0
true (sub1a (- a 1))))
(println (sub1a 10))
Se ejecuta muy bien.
¿Es esto por diseño, o simplemente una función del funcionamiento del lector Clojure?