Learning LISP

For the past few week, I’ve been learning LISP on weekends, this being a part of my new ‘Two programming languages a year’ resolution (I plan to learn Haskell later this year and FORTH and Clojure next year). While I was mostly inspired by Paul Graham (if you don’t know who he is, you should probably jump off a roof), I also wanted to have a look at what has kept LISP alive for sixty years. I was not disappointed.

The coolest thing about LISP is the way you express your program as a tree. While it initially feels a little counter-intuitive, this counter-intuition is the same one one feels when switching to Linux from Windows – “Where is my C: drive? Where is my start menu?”. As you write more code, it becomes difficult not not to think this way.

While most people will disagree with the statement above and talk about how the macro system is really the coolest feature of LISP, I think S-expressions naturally lead to the defmacro construct. Such a construct will not have been possible in languages like C and Java, simply because the programmer does not have any access to the underlying representation.

Currently I’m following this fantastic book called ‘Practical Common LISP’ and working on a Limp / SBCL stack. Once I’m done with ‘Practical Common LISP’ I’ll move on to ‘On LISP’ by Paul Graham.

This entry was posted in Computers and tagged , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s