VO
Size: a a a
VO
VG
W
b
sub factorial {вот приблизительно как факториал вычисляется. Забудем про эффективность, конечно. Важно то, что сихронный код можно тоже вполне норм. в асинк цепочку встроить, включая then/else ветки.
my $last = shift;
my $f = Future->new->done(1);
for my $i (2 .. $last) {
$f = $f->then(sub { Future->new->done(shift->result * $i) });
}
return $f;
}
my $f = factorial(100)
say $f->get; # под капотом не крутит луп, т.к. все фьючи уже выполнены.
VG
W
sub factorial {вот приблизительно как факториал вычисляется. Забудем про эффективность, конечно. Важно то, что сихронный код можно тоже вполне норм. в асинк цепочку встроить, включая then/else ветки.
my $last = shift;
my $f = Future->new->done(1);
for my $i (2 .. $last) {
$f = $f->then(sub { Future->new->done(shift->result * $i) });
}
return $f;
}
my $f = factorial(100)
say $f->get; # под капотом не крутит луп, т.к. все фьючи уже выполнены.
b
VO
VG
W
VO
VO
VG
VG
b
VO
SZ
a
SZ