Not a "challenge", exactly, but I enjoyed the one in the recent
"shortest path" thread, started in article
SjDW9.17423$LM3.9...@news0.telusplanet.net. It took me a
couple hours and provided moderate entertainment. But maybe you
already know more Lisp than that. :)
I learnt Lisp (and programming in general.) because I was asking myself way
too many questions. So, for me, Lisp is a way to put the "burden of the proof"
on the computer.
Start with number theory, the queen of mathematics is my princess of
programming. I have had good times learning machines and their assembly
languages while testing out basic number properties.
If you are more of a "doer", then rewrite all the shell scripts in your home
directory in a Lisp.
The best way to learn the semantics is by trying out each special-form,
function, macro and constant as you read it from CLtL2, and the best way to
learn the language _idioms_ is by reading code (may I suggest your Lisp
implementation for a start?)
I wouldn't recommend tackling this one as an _introductory_ problem unless
he's already got some experience solving reasonably complicated problems.
sl