Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione funzionale / Funzioni di ordine superiore / Passare subroutine

Quiz — Passare subroutine

Cosa stampa il programma seguente?

sub negate($n) { -$n }

sub apply(&f, $x) {
    f($x);
}

say apply(&negate, 7);
1-7
07
00
0&negate

Una subroutine con nome si passa con il sigillo &, quindi &negate consegna ad apply la subroutine stessa invece di chiamarla. All’interno, f(7) la esegue, dando -7.

Passare subroutine   |   Restituire subroutine