Курс языка программирования Raku / Продвинутый уровень / Операторы / Метаоператоры / Exercises / Все факториалы сразу
Решение: Все факториалы сразу
Вот один из возможных вариантов решения задачи.
Код
say [\*] 1..6;🦋 Исходный код можно найти в файле factorial.raku.
Вывод
(1 2 6 24 120 720)Комментарии
Обратная косая черта внутри скобок превращает
[*]в треугольную свёртку. Вместо того чтобы свернуть список к одному значению, она сохраняет каждое частичное произведение:1, затем1*2, затем1*2*3и так далее.Каждое частичное произведение
1*2*...*k— это в точности k!, поэтому результатом оказывается список факториалов чисел от1до6. Обычная свёртка[*] 1..6дала бы только последнее из них —720.