Оптимизация хвостовой рекурсии превращает функции со свойством хвостовой рекурсии в итерацию, чтобы сделать это без поддержки компилятора, вы должны выполнить рекурсию -> итерацию вручную. Обратите внимание, что вы можете потерять читабельность вашего кода (рекурсивные функции имеют тенденцию быть короче и проще для понимания) и вам нужно много изменений кода (таким образом выворачивая мозг наизнанку). Если мне нужно сделать это, я обычно помещаю исходную рекурсивную функцию в комментарий над преобразованной итерационной версией.