An Intuition for Lisp Syntax (2020)
Having played around with Clojure and Scheme for a while (but never got too serious), I always thought homoiconicity and macros were extremely cool concepts, but I never actually ran into a need for them in my everyday work.<p>&gt;Now, if we agree that the ability to manipulate source code is important to us, what kind of languages are most conducive for supporting it?<p>This is useful for compiler programmers, or maybe also those writing source code analyzers&#x2F;optimizers, but is that it? On occasion I have had to write DSLs for the user input, but in these cases the (non-programmer) users didn&#x27;t want to write Lisp so I used something like Haskell&#x27;s parsec to parse the data.<p>The remote code example given in the post is compelling, but again seems a bit niche. I don&#x27;t doubt that it&#x27;s sometimes useful but is it reason enough to choose the language? Are there examples of real-life (non-compilers-related) Lisp programs that show the power of homoiconicity?<p>Same goes with the concept of &quot;being a guest&quot; in the programming language. I have never wanted to change &quot;constant&quot; to &quot;c&quot;. Probably I&#x27;m not imaginative enough, but this has never really been an issue for me. Perhaps it secretly has though, and some of my problems have been &quot;being a guest&quot; in disguise.