April 29th, 2010

Lisp, the functional programming language

People often join #lisp and talk about how they want to get into "functional programming," and that can lead to confusion as people work out exactly what that means and whether you'll get into it if you get into Common Lisp. A similar discussion on comp.lang.lisp led to this from Didier Verna:

The only definition that should stand is: functional = supports functions as first class citizens, as per Christopher Strachey's definition. And support for any paradigm is indeed a continuum.

I also find particularly annoying when people assume that functional = purely functional. That's the kind of vocabulary fuzziness that leads to comments I've heard too often like:

<C guy>:
Lisp? Ah yeah, that's this weird functional language with lots of parens...

<Haskell guy>:
Lisp? Ah yeah, that's this weird imperative language with lots of parens...


It turns out an Apple Genius was able to fix my iPhone 3G's broken home button, free of charge. So now I have both a shiny new iPhone 3GS and an 18-month-old, scuffed and worn, perfectly working iPhone 3G. What should I do with the 3G? Podcasts for Erik on car trips or something?