このファイルで、我々は、再帰手続き理論の重要な成果の一つであるYコンビ ネータを導出する。手続きに名前を与える必要がない場合があることが知られ ている。たとえば、 ((lambda (x) (+ x 1)) 6) は、それを行なう手続きを名付けることなく1を6に加える。しかし、再帰手続 きはどうだろうか? たとえば、 (define fact (lambda (n) (if (zero? n) 1 (* n (fact (- n 1)))))) は数nの階乗を計算するが、手続きの最終行で自身に再帰できるようにするた めに名前"fact"が必要であるように思える。しかし、我々はそれは必要でない ことを理解し、そのプロセスにおいて、Schemeを使うことに関する多くの勘を やしなうだろう。我々は一ステップずつ進み、各ステップで"fact"をわずかに 変更する。 Step 1. 最初のアイディア