Как рекурсивная функция реализована в функциональных языках?
Рассмотрим следующую рекурсивную привязку верхнего уровня:
let f = (a => f a);
(где arg => expr
это лямбда-выражение)
Определить f
в глобальной среде, сначала мы должны оценить ценность f
а именно a => f a
, Но с тех пор f
выражение еще не определено a => f a
приведет к ошибке.
Как интерпретаторы / компиляторы функционального языка решают эту проблему?