Публикации по теме 'trampoline'


Исследование NodeJS по функциональному программированию II
Здесь мы рассмотрим рекурсивные функции и технику, называемую батутом, для устранения ограничений стека. Возьмем из хвостовой рекурсивной факториальной функции: const fact = (n, acc = 1) => (n > 1) ? fact(n - 1, n * acc) : acc; Дайте определение батуту const trampoline = fn => { while(fn instanceof Function) { fn = fn(); } return fn; } Вы можете видеть, что батут будет зацикливаться, пока рекурсивные вызовы заключены в замыкание. Использование..