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

Quiz — Funzioni di ordine superiore

Cosa stampa il programma seguente?

sub prefixer($p) {
    sub ($s) { $p ~ $s };
}

my &hi = prefixer('Hi, ');
say hi('Bob');
1Hi, Bob
0Bob
0Hi,
0Hi, Hi,

prefixer('Hi, ') restituisce una subroutine che ricorda il prefisso e lo antepone a qualunque cosa le venga data. Conservata in &hi e chiamata con 'Bob', restituisce Hi, Bob — una subroutine restituita funziona con le stringhe altrettanto bene che con i numeri.

Restituire subroutine   |   Applicate due volte