Curso de Raku / Avanzado / Subrutinas / Llamadas con dos puntos / Exercises / Un map con dos puntos

Solución: Un map con dos puntos

Aquí tienes una posible solución para la tarea.

Código

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

🦋 Encuentra el programa en el archivo colon-map.raku.

Salida

(12 14 16 18 20)

Comentarios

  1. Solo grep, la última llamada en la cadena, puede usar la forma con dos puntos. Los dos puntos hacen que * > 10 sea su argumento, exactamente como lo haría grep(* > 10). Como aun necesitamos imprimir los resultados, say se usa ahora como función, no como método.

  2. La llamada a map debe conservar sus paréntesis. Si escribieras .map: * * 2 en su lugar, los dos puntos se tragarían .grep(* > 10) como parte de los argumentos de map, y la cadena se rompería.

Un map con dos puntos   |   Join con dos puntos