Clojure: Can macros do something that couldn't be done with a function?

May 16, 2017

Yes.

When Guido van Rossum proposed adding a case statement to Python, the committee turned him down. So Python has no case statement.

If Rich [Hickey] didn’t want a case statement, but I did, I can have one.

[stackoverflow]

2017-07-31 EDIT:

This revealation started me on the path to presenting the magic of macros and homoiconicity at a Skyscanner Lightning Talk. The slides are here, click the image below to watch:

clojure macros talk

Clojure: Can macros do something that couldn't be done with a function? - May 16, 2017 - Tristram Oaten