Perl 6

Новый вид тернарного оператора

Пару дней назад, говоря о нанизанных условиях, я привел пример того, как их можно использовать совместно с тернарным условным оператором:

my $x = 1;
my $y = 15;
print (($x < 10 < $y) ?? "yes" :: "no");

Первоначально я пытался записать части этого оператора так, как это принято в С++ и Perl 5, то есть — один знак вопроса и одно двоеточие. Фокус не прошел, и я списал это на то, что такой оператор пока просто не реализован. Однако, копаясь в тестовых примерах и исходных кодах компилятора perl6, я увидел, как нужно было поступить: сейчас оператор ожидает, что символы ? и : окажутся продублированными:

print 1 ?? "yes" :: "no";

А через три года появилась заменка «Новый вид тернарного оператора — 2», в которой говорится о том, что синтаксис опять поменялся.

31 октября 2003