Курс языка программирования Raku / Продвинутый уровень / Подпрограммы / Вызов через двоеточие / Exercises / map через двоеточие
Решение: map через двоеточие
Вот возможное решение задачи.
Код
say (1..10).map(* * 2).grep: * > 10;🦋 Исходный код можно найти в файле colon-map.raku.
Вывод
(12 14 16 18 20)Комментарии
Только
grep, последний вызов в цепочке, может использовать форму с двоеточием. Двоеточие делает* > 10его аргументом, точно так же, какgrep(* > 10). Поскольку нам по-прежнему нужно вывести результат,sayтеперь используется как функция, а не как метод.Вызов
mapдолжен сохранить скобки. Если написать.map: * * 2, двоеточие поглотит.grep(* > 10)как часть аргументовmap, и цепочка сломается.