Я нахожусь в классе 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)): Что именно он делает? И где вы вводите значение, для которого хотите получить факториал?
Это не для класса, это просто из любопытства.