История изменений
Исправление eve, (текущая версия) :
Функции могут ссылаться на предыдущие
Тогда уж let*, а не let. Простой let создаст привязки в контексте, где ни f, ни g ещё не определены, так что g не может сослаться на f, равно как и g на саму себя.
Впрочем, даже если привязки уже есть (в окружении верхнего уровня), это не сработает, т. к. функции f и g все равно останутся в предыдущем окружении, лишь тело let будет в новом окружении. Так что тут нужен letrec.
Исходная версия eve, :
Функции могут ссылаться на предыдущие
Тогда уж let*, а не let. Простой let создаст привязки в контексте, где ни f, ни g ещё не определены, так что g не может сослаться на f, равно как и g на саму себя.