Курс 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, тож left == 6 зазнає
невдачі.