Примечания к видео
В терминальном условии должно быть сравнение $exp
с нулём, а не единицей:
function myPow ($base, $exp) {
$powIter = function ($base, $exp, $acc) use (&$powIter) {
if ($exp === 0) { return $acc; }
return $powIter ($base, $exp - 1, $acc * $base);
};
return $powIter ($base, $exp, 1);
}
myPow(3, 5); // 243
myPow(4, 4); // 256
Полезные ссылки
- Всякую ли рекурсию можно превратить в итерацию?
- Хвостовая рекурсия / Википедия
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Об обучении на Хекслете
- Статья «Как учиться и справляться с негативными мыслями»
- Статья «Ловушки обучения»
- Статья «Сложные простые задачи по программированию»
- Вебинар «Как самостоятельно учиться»
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.