Check this out.

For those who are unfamiliar, Lisp is a functional language often associated with AI programming. I took an AI class in college and Lisp was the primary language used to explain the AI concepts. It is very cryptic to look at if you haven’t ever used it, because it makes heavy use of parentheses. It also makes a lot of use of recursion. If I remember correctly, it doesn’t actually have any looping structure (i.e. while, for, etc.) other than making use of recursion. It can really help with looking at common programming problems in a different way.

CORRECTION: After looking over the book just a little bit, it appears that Lisp DOES have loop operators in addition to recursion. I wonder if it was one of those academic things, sort of like how they don’t tell you about the STL until you’ve made it through the data structures class and coded your own linked list, binary search tree, and graph. Oh well.