
I've been learning Lisp - after all, it's not as if I have anything else to do. It's very different to any other programming language I've learnt, and in a way it's very cool. I especially like the feature that the language itself can be used to modify the language, but I haven't really got to the stage where I can make use of that yet. Today I wrote a program:
(defun countdown (&rest args)
(let ((target (apply #'encode-universal-time args))
(left))
(do ((finished nil)) (finished)
(sleep 1)
(setf left (- target (get-universal-time)))
(if (< left 0)
(setf finished t)
(format t "~a:~a:~a~%"
(floor (/ left 3600))
(floor (/ (mod left 3600) 60))
(mod left 60))))))
I've been finding ANSI Common Lisp by Paul Graham very handy (once Amazon finally decided to deliver it), and I've been using SBCL as my compiler.
Update: The history of Lisp, for anyone who's interested.