Is there a Clojure function that does for any function what macroexpand-all does for a macro?
In SICP, Abelson & Sussman give a demonstration of this that they call the “linear recursive process”.
In other words, if we give:
(factorial 6)
the function would print (and not evaluate):
(* 6 (* 5 (* 4 (* 3 (* 2 (1))))))
Essentially, I am trying to “see” the data structure any function “builds up” just prior to evaluation.
I think this would be an interesting way for beginners (that’s me :) to see what the Reader(?) is building up just before it passes things on to the Evaluator. (I’m not sure I’m using the right terms, here.)
