Курс языка программирования Raku / Продвинутый уровень / Подпрограммы / Вызов через двоеточие / Exercises / map через двоеточие

Решение: map через двоеточие

Вот возможное решение задачи.

Код

say (1..10).map(* * 2).grep: * > 10;

🦋 Исходный код можно найти в файле colon-map.raku.

Вывод

(12 14 16 18 20)

Комментарии

  1. Только grep, последний вызов в цепочке, может использовать форму с двоеточием. Двоеточие делает * > 10 его аргументом, точно так же, как grep(* > 10). Поскольку нам по-прежнему нужно вывести результат, say теперь используется как функция, а не как метод.

  2. Вызов map должен сохранить скобки. Если написать .map: * * 2, двоеточие поглотит .grep(* > 10) как часть аргументов map, и цепочка сломается.

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

map через двоеточие   |   join через двоеточие