DL
Size: a a a
DL
EZ
DL
DL
(defn foo [& args]
(let [[x & more] args]
(prn x)
(if more (recur more) nil)))
(foo :a :b :c)
==>
:a
:b
:c
(defn bar [& args]
(let [[x & more] args]
(prn x)
(if more (bar more) nil)))
(bar :a :b :c)
==>
:a
(:b :c)
LL
DL
Evaluates the exprs in order, then, in parallel, rebinds
the bindings of the recursion point to the values of the exprs.
Execution then jumps back to the recursion point, a loop or fn method.
DL
LL
DL
(:a :b :c)
(:b :c)
(:a :b :c)
((:b :c))
LL
SS
DL
DL
SS
EZ
SS
DL
EZ
SS