Kurso de Raku / Funkcia, samtempa, reaktiva kaj reta programado / Funkcia programado / Generiloj / gather kaj take

Kvizo — gather kaj take

Kion presas la jena programo?

my @a = gather {
    for 1..5 {
        take $_ if $_ > 3;
    }
}

say @a;
0[1 2 3 4 5]
1[4 5]
0[1 2 3]
0[3 4 5]

La take plenumiĝas nur kiam $_ > 3, do nur 4 kaj 5 estas aldonataj al la listo. Ĉio alia estas preterpasata, donante [4 5].

Kursa navigado

gather kaj take   |   Maldiligenta gather