I wrote this post on 1 minute read

Paul Graham on “what made Lisp different” in his essay Revenge Of The Nerds in 2002:

The whole language is there all the time. There is no real distinction between read-time, compile-time, and runtime. You can compile or run code while reading, read or run code while compiling, and read or compile code at runtime.

Running code at read-time lets users reprogram Lisp’s syntax; running code at compile-time is the basis of macros; compiling at runtime is the basis of Lisp’s use as an extension language in programs like Emacs; and reading at runtime enables programs to communicate using s-expressions, an idea recently reinvented as XML.

As a novice user of Clojure and Emacs, right after reading this statement, bits and pieces of knowledge I had about Lisp immediately “clicked”.

Wish I had read about it since day one.