Курс по 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 тест върху съдържанието на тази тема.

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

Мързеливи и безкрайни редици   |   Тест — Операторът за редица


💪 Или преминете направо към упражненията в този раздел.