Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación funcional / Lambdas y clausuras / Exercises / Un contador
Solución: Un contador
Aquí tienes una posible solución para la tarea.
Código
sub make-counter($step) {
my $n = 0;
return sub { $n += $step };
}
my &count = make-counter(10);
say count();
say count();
say count();🦋 Puedes encontrar el código fuente en el archivo counter.raku.
Salida
10
20
30Comentarios
La clausura captura dos cosas de
make-counter: el parámetro$stepy la variable privada$n. Ambas siguen vivas después de quemake-counterretorne.Cada llamada suma
$stepa$ny devuelve el nuevo total. Un contador construido con un paso distinto avanzaría en esa cantidad.
Navegación del curso
← Un contador | Un multiplicador →