Hi guys, I write articles on Clojure on a daily basis taking brave clojure as a reference. Check out my latest article on Functions in Clojure: Day 4 : https://medium.com/@abiduzair420/functions-in-clojure-day-4-6a38c6e18661
Heyy @adityaathalye Thanks for the explanation. I didn't know about the compile/runtime diff b/w function and a macro.
This is also the reason why one can't pass a macro as an argument to a function. i.e. while macros are also functions of data->data, they are not "first-class", because they are meaningless in a run-time context. An unevaluated macro would be meaningless at run-time, because it can't do anything with the source code any more.
Ooh, this thread has appeared an opportune moment. Directly related to what we are discussing now ... https://clojurians.slack.com/archives/C06E3HYPR/p1512859240000027