>But, for the sake of argument, I'd like to boil them down to two things: > LISP is a dense functional language. > LISP has programmatic macros. First of these is wrong and second is just picking something from feature list without any concern of practicality. When someone writes Lisp as LISP and speaks about functional programming, I get the feeling that the author has not programmed with Lisp outside school (or kno…
I've actually spent something like a dozen years writing Common Lisp and Scheme macros for production software. But I try not to put the nastiest ones in blog posts. :-)
In my experience, real-world Lisp was often a surprisingly functional language, certainly by the standards of the day.
Based on working with real-life Lisp code bases at four different organizations, I also stand by my description of what Lisp macros in production software typically looked like in 2005. Sure, there was the occasional elaborate macro that implemented something like Prolog in Lisp, and it was glorious. But the actual day-to-day workhorse Lisp macros were less flashy—most of them delayed evaluation, improved syntax, or performed simple transformations.
Many of these things are extremely valuable, but you don't necessarily need the full power of macros to implement them.