- Joined
- Feb 15, 2007
- Messages
- 2,334
- Reaction score
- 649
Most functional languages are pretty much equivalent in their basic ideas, and with a general enough language one can construct any modern functional (or even procedural) language. The original paper on LISP is excellent. Everyone should read it.Just in case you might want to try Haskell. It's a purely functional language, very different from all this C/Java/every other mainstream language crap. It has an extremely good book online, too: Learn You a Haskell for Great Good! - Chapters
If you feel like it, have a try. It will not make you better programmer in other languages (just kidding, it will), but it's much fun and I think educational. And nothing's preventing you from having a cup of Haskell every now and then while learning something more mainstream primarily.
The entire history of LISP is hilarious. It was created as a mathematical tool by McCarthy, an example that with a few operators and functional notation, you can create a turing-complete language to describe algorithms; completely theoretical. Russell then realized "oh hey, I can code eval in assembly" and voila, LISP interpreter was born. Fundamentally, though, computers are "procedural". LISP is not as powerful/abstract as pure assembly, but it divorces you from limitations in most procedural high level languages and teaches you that the structure of your language is just as important as anything else, that ideology of how to write programs is invaluable.
Reading SICP isn't a bad step.

