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

Решение: Последовательность Трибоначчи

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

Код

my @trib = 1, 1, 1, * + * + * ... *;
say @trib[^8];

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

Вывод

(1 1 1 3 5 9 17 31)

Комментарии

  1. Замыкание * + * + * складывает три предыдущих элемента, чтобы получить следующий, поэтому и начальных значений нужно три.

  2. Последовательность ленива, поэтому хранение её в @trib и запрос @trib[^8] вычисляют лишь первые восемь чисел.

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

Последовательность Трибоначчи   |   Конкурентное программирование