Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione funzionale / Funzioni di ordine superiore / Exercises / Create un moltiplicatore

Soluzione: Create un moltiplicatore

Ecco una possibile soluzione del compito.

Codice

sub multiplier($n) {
    sub ($x) { $x * $n };
}

my &double = multiplier(2);
my &triple = multiplier(3);

say double(7);
say triple(7);

🦋 Trova il programma nel file make-multiplier.raku.

Output

14
21

Commenti

  1. multiplier(2) restituisce una subroutine che ricorda che $n è 2; multiplier(3) restituisce una subroutine separata che ricorda 3.

  2. Ogni subroutine restituita conserva il proprio $n, quindi double(7)14 e triple(7)21 — due funzioni indipendenti costruite dalla stessa fabbrica.

Create un moltiplicatore   |   Filtrare con un blocco