phi n 0 = 1
phi n l = 1 + 1 / phi n (l - 1)
Очевидно, что последнее оцененное действие не является рекурсивным вызовом, поэтому данная реализация действительно выдает с достаточно большим l
.
Так, как (если таковые имеются) переписать рекурсию так, что 1) она остается рекурсивной, 2) оптимизируется хвостом? Я предполагаю, что phi n l result
будет работать, но не может переопределить соответственно ... Есть ли надежные методы / методы, как решить такие проблемы?