おっと、selfはキーワードじゃなくて、ただの変数名。
letやletrecはその変数を作る構文。
>>420はletで作成した変数tmpやselfを無名関数で初期化しているだけ。
LISPスレ行くか適当な入門書読んだ方がいいんじゃないかと。