Курс по 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