Курс языка программирования Raku / Продвинутый уровень / Операторы / Метаоператоры / Exercises / Все факториалы сразу

Решение: Все факториалы сразу

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

Код

say [\*] 1..6;

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

Вывод

(1 2 6 24 120 720)

Комментарии

  1. Обратная косая черта внутри скобок превращает [*] в треугольную свёртку. Вместо того чтобы свернуть список к одному значению, она сохраняет каждое частичное произведение: 1, затем 1*2, затем 1*2*3 и так далее.

  2. Каждое частичное произведение 1*2*...*k — это в точности k!, поэтому результатом оказывается список факториалов чисел от 1 до 6. Обычная свёртка [*] 1..6 дала бы только последнее из них — 720.

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

Все факториалы сразу   |   Соберите URL