Глубокая рекурсия переполняет стек. tailrec помечает функцию, где рекурсивный вызов в хвостовой позиции — компилятор переписывает в цикл. Нужен прямой вызов себя последней операцией. Взаимная рекурсия не подходит.
Факториал
Глубокая рекурсия переполняет стек. tailrec помечает функцию, где рекурсивный вызов в хвостовой позиции — компилятор переписывает в цикл. Нужен прямой вызов себя последней операцией. Взаимная рекурсия не подходит.