我在这里有两个函数,尽管我会返回相同的东西,但它们不会。我无法为自己的生活弄清楚原因。有任何想法吗?
user=> (defn foo [x] (when (> x 0) (conj (vec (foo (dec x))) x)))
#'user/foo
user=> (defn bar [x] (when (> x 0) (conj [(bar (dec x))] x)))
#'user/bar
user=> (foo 5)
[1 2 3 4 5]
user=> (bar 5)
[[[[[nil 1] 2] 3] 4] 5]
Run Code Online (Sandbox Code Playgroud)