Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Линейно-итеративный процесс PHP: Построение абстракций

Примечания к видео

В терминальном условии должно быть сравнение $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

Полезные ссылки

  • Всякую ли рекурсию можно превратить в итерацию?
  • Хвостовая рекурсия / Википедия

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»