Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Функциональное программирование / Рекурсия / Exercises / Треугольное число
Решение: Треугольное число
Вот один из возможных вариантов решения задачи.
Код
multi tri(0) { 0 }
multi tri($n) { $n + tri($n - 1) }
say tri(5);🦋 Исходный код можно найти в файле triangular-number.raku.
Вывод
15Комментарии
Базовый случай — самостоятельный кандидат:
multi tri(0)срабатывает, только когда аргумент в точности равен0, и возвращает0, не уходя в рекурсию.Все остальные вызовы попадают в
multi tri($n), который прибавляет$nк треугольному числу для$n - 1. Вызовы спускаются как5 + 4 + 3 + 2 + 1 + 0, а когда аргумент доходит до0, диспетчеризация переключается на кандидата с базовым случаем и сумма разворачивается в15.