January 2017
Intermediate to advanced
565 pages
13h 46m
English
Now, as you can imagine, since things can get complicated when using macros, there should be some way to debug them. We have two functions to accomplish that:
macroexpandmacroexpand-1The difference between them has to do with recursive macros. There is no rule telling you that you can't use a macro from a macro (the whole language is there all the time, remember?). If you wish to go all the way through any macro, you can use macroexpand; if you wish to go a single step forward, you can use macroexpand-1.
Both of them show you the code generated by a macro call; this is what happens when you compile your Clojure code.
Give this a try:
(macroexpand-1 '(my-if (> a 200) (do (println"Bigger than 200") :bigger) (do (println"Smaller ...
Read now
Unlock full access