Curso de Raku / Avanzado / Subrutinas / Subrutinas anónimas / Exercises / Triplicar

Solución: Triplicar

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

Código

my $factor = 3;
my $scale = -> $x { $x * $factor };

say $scale(7);

🦋 Encuentra el programa en el archivo triple-it.raku.

Salida

21

Comentarios

  1. El bloque puntiagudo usa $factor, una variable del ámbito circundante, aunque solo tiene un parámetro $x. Capturar tales variables es lo que lo convierte en una clausura.

  2. Con $factor igual a 3, llamar a $scale(7) da 21. Cambia $factor y el mismo bloque escalaría por el nuevo valor:

$factor = 5;
say $scale(7); # 35

Dado que la clausura captura la variable en lugar de su valor en el momento en que fue escrita, la llamada posterior ve el $factor actualizado y devuelve 35.

Triplicar   |   Un cuadrado anónimo