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

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

Тест — Джанкшъни   |   Тест — Автоматично разнишване


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