This is a pretty good introduction and is pretty accessible on first pass through.
However, a factual error:: "(remember? an empty list is also a list with a head and a tail)."
An empty list is an empty list :) You could switch the order of those two function heads and 'map' would still behave properly.