Рекурсивные функции, переполнение стека и Y-комбинаторы

У меня есть рекурсивная функция (на C #), которую мне нужно вызвать около 800 миллионов раз; это, очевидно, обычно приводит к переполнению стека примерно после 900-го вызова. Я перенес это на несколько циклов, но рекурсивный шаблон намного проще и чище в обслуживании.

Я рассматриваю реализацию рекурсивной функции с использованием y-комбинатора, судя по тому, что я читал и видел, что должно решить проблему переполнения стека и исправить множественные вложенные циклы.

Есть ли у кого-нибудь опыт использования y-комбинатора? Я все еще застряну в переполнении стека?

Возьмем простой пример факториала. Факториал для большинства чисел больше 5000 вызовет переполнение стека. Если бы я правильно использовал y-комбинатор в этом сценарии, исправил бы он переполнение стека?

Это не кажется тривиальным для реализации, поэтому я хочу подтвердить его, прежде чем потратить усилия / ресурсы на разработку и изучение y -комбинатор.

5
задан Brian Deragon 2 December 2011 в 07:10
поделиться