Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Конкурентне програмування / Джанкшени
Автопотоковість
Коли ви передаєте з’єднання туди, де очікується одне значення — у порівняння або у звичайну функцію, — Raku тихенько застосовує цю операцію до кожного значення за з’єднанням і зшиває результати назад у з’єднання. Це називають автопотоковістю (autothreading).
Наприклад, додавання до з’єднання додає до кожного з його значень:
my $j = 1 | 2 | 3;
say $j + 10; # any(11, 12, 13)+ 10 було застосовано окремо до 1,
2 та 3, даючи нове з’єднання any:
any(11, 12, 13).
У порівнянні зшитий результат згортається до одного значення істинності відповідно до різновиду з’єднання:
say so all(3, 7, 2) > 0; # True — кожне значення додатне
say so all(3, -1, 2) > 0; # False — не всі додатні
say so none(1, 2, 3) == 5; # True — жодне з них не дорівнює 5Саме автопотоковість робить з’єднання такими лаконічними: одне порівняння перевіряє багато значень. Концептуально перевірки незалежні, тож Raku вільний виконувати їх паралельно — саме тому з’єднання природно вписуються в набір інструментів для конкурентності.
Практика
Виконайте 1 тест за змістом цієї теми.
Навігація курсом
← Тест — Джанкшени | Тест — Автопотоковість →
💪 Або перейдіть одразу до вправ цього розділу.