Курс по Raku / Функционално, паралелно, реактивно и уеб програмиране / Паралелно програмиране / Джанкшъни / Създаване на джанкшъни

Тест — Джанкшъни

Какво отпечатва следната програма?

say so 4 == all(2, 4, 6);
0True
1False
0all(2, 4, 6)
04

Съединението 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 се проваля.

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

Създаване на джанкшъни   |   Автоматично разнишване