Okay. CS Weenie, if you’re reading this: I tried lisp in more than just a trivial application and you’re right.
I find Closures more fun (and useful) than I feel comfortable admitting around my friends. Stacks and trees are trivially easy. Calling functions (like this) took some getting used to, and occasionally I’d find myself slipping back to my C roots but overall I’d have to concur that there are programs that can only be written in Lisp.
I haven’t had much of a chance to play with the really meaty code-as-data stuff or macros yet.
I haven’t forgotten my Church-Turing: Lisp is just as powerful as any other language at the machine level, but the Lisp solution to a problem always seems a bit more elegant (not to mention shorter.)
Oh, and Nyquist is based on lisp. Bonus points are awarded for advanced synthesizer languages.
Glad to hear you’re enjoying it. While Lisp has its problems from a practical perspective (mostly unrelated to the language itself), it’s easily my favorite programming language.
One useful aspect of [Common] Lisp is its chameleon-like adaptability to different programming paradigms (I hate that word, but it works here). If you just want to write imperative-style, step by step code, you can do that; if you want OOP you’ve got CLOS; for something completely different you’ve got macros. The limitations are generally imposed by the programmer, not the language, which is refreshing, but sometimes daunting at first.
Anyway, you’ve read the sales brochure too I’m sure.