Common Lisp - The Good, the Bad and the Ugly

Brit Butler
2011-11-04

(use arrow keys or PgUp/PgDown to move slides)

Preliminaries

It is LISP or Lisp? Well...

There are *modern* incarnations?

YES! Let's meet the fam...

So why CL over Clojure or Scheme?

A historical accident, I promise!

The real reason...

I've yet to find a hacking experience as pleasurable as CL+SLIME.

I pleasure hack in CL almost exclusively because the environment is just that nice. Unfortunately, there will be an (at best) crude demonstration of that. I'm mostly focused on just showing you guys the language today.

I hope to address image-based programming generally with live demonstration in Emacs and SLIME in a future talk.

A Few Fundamental Concepts

Only two things in Lisps: Atoms and Expressions.
Think simple substitution and reduction.

Special forms, Macros and everything else.
(see: clhs 3.1.2.1.2)

Code is data! () is the notation for a List. Much better than strings...
Once you get used to it. ;)

Related: We can switch back and forth between code and data via "quoting".

And now... SOME CODE!

Into cl-scrobbler ...

God...it's all so ugly!

Compared to Python? You better believe it.

Biggest problem right now is how to find libraries:

Unfortunate that newcomers faced with choice about compiler, editor.

At least we have quicklisp! Lispbox, further improvements incoming.

Resources for those interested...