Lisp Lessons For Other Languages

Can anyone share lessons they allegedly learned in Lisp that transfer to other existing programming languages and/or general application design?

They got rid of that chapter didn't they? Or am I overlooking something in my non-draft, non-first edition copy?

Do you have any contacts who might still have the draft? It would be really cool to see.


The big thing that happened to me as I learned Lisp was that I started seeing other languages as subsets of Lisp. I became aware of their limitations. Being aware of these limitations made it easier for me to work around them. Sometimes I would see a problem and the Lisp approach would pop into my head. Then I could decide whether to find a solution that existed within the confines of the language I was using, or find a way to fake the feature that would make the Lisp way work. Frequently the latter was much easier. It's almost an attitude. Since learning Lisp, I'm less likely to look at the tools I have and say "how can I make these work?" and more likely to ask "What's a good solution? What tools do I need to implement it?"

Another lesson of Lisp to other languages isn't so much 'how to fake the Lisp way' (that is important at times), but 'how to fake a language feature I want', because Lisp in its raw form doesn't guarantee you everything. Basically, using Lisp develops skill in faking language features. This is a bit like Perl's TMTOWTDI--if you don't like something, go off and create your own. (Staying in Lisp means that the Lisp code using a 'faked feature' still looks like raw Lisp--in other languages it looks quite different from the base language.)


EditText of this page (last edited January 30, 2005) or FindPage with title or text search