“I’m a fan of Lisp programming languages, but there’s an incredible conceptual elegance that struggles to materialise as readable elegance for many unfamiliar programmers. The underlying concepts are incredibly simple, but the learning curve can represent a disproportionate challenge.
We’ve been writing code to manipulate data for a long time now. When your code is also data, you can write code to manipulate code just as easily.
The essence of this wonder isn’t Clojure though. It’s not Racket or Scheme either. These are all just different incarnations of the code-as-data idea. These languages certainly aren’t the only ones with functions and lists!
What if we could write code-as-data in our language of choice?…”