Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Ліниві та нескінченні послідовності

Оператор послідовності

Оператор послідовності ... будує список від початкового зразка до кінцевого значення. Дайте йому кілька перших елементів та кінцеву точку — і він з’ясує, як послідовність продовжується:

say (2, 4 ... 10); # (2 4 6 8 10)

З 2, 4 він виснує «щоразу додавай два» й продовжує, аж поки не дійде до 10. Крок може бути й спадним:

say (10, 8 ... 2); # (10 8 6 4 2)

Якщо елементи зростають множенням, а не додаванням, оператор помічає і це:

say (1, 2, 4 ... 64); # (1 2 4 8 16 32 64)

Тут кожен член удвічі більший за попередній, тож послідовність геометрична.

Коли правило складніше за те, що оператор може вгадати, ви можете задати його явно як замикання від попередніх елементів. Наприклад, явне правило «додай крок»:

say (1, * + 2 ... 9); # (1 3 5 7 9)

Блок * + 2 каже, як отримати наступний елемент із поточного. Із цим ... може виразити будь-яку послідовність, яку ви здатні описати правилом.

Практика

Виконайте 1 тест за змістом цієї теми.

Навігація курсом

Ліниві та нескінченні послідовності   |   Тест — Оператор послідовності


💪 Або перейдіть одразу до вправ цього розділу.