Curso de Raku / Apéndice 🆕 / Flujo y funciones / Subrutinas y estilo funcional / Exercises / Describir según el tipo

Solución: Describir según el tipo

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

Código

multi describe(Int $x) { "integer $x" }
multi describe(Str $x) { "string $x" }
multi describe(@x)     { "list of {@x.elems}" }

say describe(42);
say describe('hi');
say describe([1, 2, 3]);

🦋 Puedes encontrar el código fuente en el archivo multi-describe.raku.

Salida

integer 42
string hi
list of 3

Comentarios

  1. Cada multi da una versión de describe con un tipo de parámetro distinto. Raku elige el candidato que coincide según el tipo del argumento.

  2. La firma @x coincide con una lista, así que el array despacha al tercer candidato, que informa de su longitud.

Describir según el tipo   |   Ordenar por dos claves