Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Паралелно програмиране / Джанкшъни / Създаване на джанкшъни
Тест — Джанкшъни
Какво отпечатва следната програма?
say so 4 == all(2, 4, 6);| 0 | True |
| 1 | False |
| 0 | all(2, 4, 6) |
| 0 | 4 |
Съединението all е истина само когато съвпада
всяка стойност. Проверката
4 == all(2, 4, 6) пита дали 4 е равно и на
2, и на 4, и на 6 — а това не е
така, така че резултатът е False.
Любопитно ви е какво би могло да го направи
True? Лявата страна би трябвало да е равна едновременно на
всяко от 2, 4 и 6. Никое отделно
число не може — но съединение отляво може: върши работа съединение
any, което съдържа и трите тези стойности,
защото тогава всяко от сравненията успява. Двете страни не е нужно да са
с еднакъв размер — лявата може да носи и допълнителни стойности:
say so any(2, 4, 6, 8) == all(2, 4, 6); # True
say so any(2, 4) == all(2, 4, 6); # FalseПървото е True, защото any(2, 4, 6, 8) все
пак е равно на 2, 4 и 6
(излишната 8 не пречи). Второто е False,
защото в лявата страна няма 6, така че
лявата == 6 се проваля.