Я в классе Scheme, и мне было любопытно писать рекурсивную функцию без использования define. Основная проблема, конечно, в том, что вы не можете вызвать функцию внутри себя, если она не имеет имени.
Я нашел этот пример: он факториальный генератор, использующий только лямбда.
((lambda (x) (x x))
(lambda (fact-gen)
(lambda (n)
(if (zero? n)
1
(* n ((fact-gen fact-gen) (sub1 n)))))))
Но я даже не могу понять первый вызов (lambda (x) (x x)): Что именно это делает? И где вы вводите значение, которое хотите получить факториалом?
Это не для класса, это просто из любопытства.