Курс по 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 тест върху съдържанието на тази тема.
Навигация в курса
← Тест — Джанкшъни | Тест — Автоматично разнишване →
💪 Или преминете направо към упражненията в този
раздел.