Курс по 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 с двоеточие