; Passing n as parameter instead of relying on outer n. As a preparation to tear things appart... (let ((i (lambda (f) (lambda (n) (let ((g (lambda (h n) ; NEXT CURRY IT (if (= n 0) 1 (* n (h (- n 1))))))) (g (f f) n)) )))) ((i i) 5))