Основы функционального программирования/Структуры данных и базисные операции — 2: различия между версиями
Содержимое удалено Содержимое добавлено
Строка 117:
<math>Factorial(0) = 1</math>
<math>Factorial(N) = N * Factorial(N
Если провести пример вычисления этой функции с аргументом <math>3</
<math>Factorial(3)</math>
Строка 147:
<math>F(0, A) = A</math>
<math>F(N, A) = F((N
В этом примере второй параметр функции <math>F</math> выполняет роль аккумулирующей переменной, именно в ней содержится результат, который возвращается по окончании рекурсии. Сама же рекурсия в этом случае принимает вид «хвостовой», память при этом расходуется только на хранение адресов возврата значения функции.
|