Wenn ich folgend in clojureSind Clojure-Funktionen zyklische Abhängigkeiten, die vom Design ausdrücklich nicht zugelassen sind, oder handelt es sich nur um ein Leserverhalten?
(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))
bekomme ich folgende Fehler tun:
java.lang.Exception: Unable to resolve symbol: sub1b in this context
Aber wenn ich folgendes tun:
(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))
Es ganz gut läuft.
Ist das Absicht oder nur eine Funktion der Funktionsweise des Clojure-Lesers?