sub fib { my $a = 0; my $b = 1; gather { loop { take $a; my $c = $a + $b; $a = $b; $b = $c; } } } # (0 1 1 2 3 5 8 13 21 34 55) fib[10] == 55 or die "Wrong value";