Curso de Raku / Programación funcional, concurrente, reactiva y web / Programación funcional / Lambdas y clausuras / Exercises / Un acumulador

Solución: Un acumulador

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

Código

sub make-accumulator {
    my $sum = 0;
    return -> $x { $sum += $x };
}

my &acc = make-accumulator;
acc(10);
say acc(5);

🦋 Puedes encontrar el código fuente en el archivo accumulator.raku.

Salida

15

Comentarios

  1. La clausura captura $sum, que sobrevive entre llamadas.

  2. acc(10) deja el total en 10; acc(5) suma cinco y devuelve 15.

Un acumulador   |   Reducción