что-то я не понимаю.. итеративный процесс - это когда есть функция, содержаща...

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

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


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


на самом деле, в реальном коде, рекурсией пользуются редко, функции высшего порядка могут решать почти все задачи. а там где ипользуется рекурсия, то да, чаще всего приводят к итеративному. но это скорее удел функциональных языков, в императивных просто пользуются циклами.