Курс Raku / Розширені / Підпрограми / Виклик через двокрапку 🆕 / Вправи / 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, і ланцюжок зламався б.