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