|
|
|
|
|
by platz
4220 days ago
|
|
I think its also the indentation along with everything is an expression, formatted as a list kind of thing. Especially that alternating pairs
business. Having to know what is a macro and what is not affects understanding how arguments are evaluated, and basically everything is an argument differentiated only by position. I've head one should read a lisp function not from the top town or outside in, but rather from the most indented part first, and then work your way up and out to discover the definitions. |
|
The whole point of macros is that they are written in the same syntax as everything else (because of homoiconicity you can operate on your code as native data), you don't need to know what is a macro and what is not for 90% of the code you write. There are very little cases in Lisp languages in general where the difference between a macro and a function are evident, and in Clojure even less (compared to another dialect like, let's say, Common Lisp).
There are some times where that might be useful, but that's why we have a repl and macroexpand.