Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Функциональное программирование / Рекурсия / Exercises / Треугольное число

Решение: Треугольное число

Вот один из возможных вариантов решения задачи.

Код

multi tri(0)  { 0 }
multi tri($n) { $n + tri($n - 1) }

say tri(5);

🦋 Исходный код можно найти в файле triangular-number.raku.

Вывод

15

Комментарии

  1. Базовый случай — самостоятельный кандидат: multi tri(0) срабатывает, только когда аргумент в точности равен 0, и возвращает 0, не уходя в рекурсию.

  2. Все остальные вызовы попадают в multi tri($n), который прибавляет $n к треугольному числу для $n - 1. Вызовы спускаются как 5 + 4 + 3 + 2 + 1 + 0, а когда аргумент доходит до 0, диспетчеризация переключается на кандидата с базовым случаем и сумма разворачивается в 15.

Навигация по курсу

Треугольное число   |   Функции высшего порядка