Cursus Raku / Programmatio functionalis, simultanea, reactiva et retialis / Programmatio functionalis / Lambdae et clausurae
Clausurae
Clausura est subprogramma quod variabiles ex circumscriptione in qua definitum est capit, easque vivas servat etiam postquam illa circumscriptio finivit. Hoc subprogrammati proprium statum privatum et durantem dat.
Exemplum classicum est numerator:
sub make-counter {
my $n = 0;
return sub { ++$n };
}
my &count = make-counter;
say count(); # 1
say count(); # 2
say count(); # 3Variabilis $n intra make-counter
declaratur. Subprogramma redditum ad $n spectat, itaque
super eam clauditur: unaquaeque vocatio count
eandem $n auget et reddit, quamquam ipsum
make-counter iam pridem finivit.
Unaquaeque vocatio make-counter recentem $n
creat, itaque numeratores separati independentes sunt:
my &a = make-counter;
my &b = make-counter;
say a(); # 1
say a(); # 2
say b(); # 1Clausurae functioni permittunt statum ferre sine variabili globali et sine obiecto. Sunt modus programmationis functionalis aliquid inter vocationes meminendi.
Exercitatio
Sequuntur 1 quiz de contentis huius argumenti.
Navigatio cursus
← Quiz — Lambdae | Quiz — Clausurae →
💪 Vel recta ad exercitationes huius
sectionis i.