; We wish that the (let ((i ...))) form is a function to which g is passed as parameter. (let ((g (lambda (h) (lambda (n) (if (= n 0) 1 (* n (h (- n 1)))))))) ((lambda (j) (let ((i (lambda (f) (lambda (n) ((j (f f)) n) )))) ((i i) 5))) ; THE NUMBER 5 DOES NOT BELONG TO g)) ; THE SELF APPLICATION STUFF. MOVE IT OUT.