Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
13
Task/Anonymous-recursion/Perl/anonymous-recursion-2.pl
Normal file
13
Task/Anonymous-recursion/Perl/anonymous-recursion-2.pl
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
sub fib {
|
||||
my ($n) = @_;
|
||||
die "negative arg $n" if $n < 0;
|
||||
# put anon sub on stack and do a magic goto to it
|
||||
@_ = ($n, sub {
|
||||
my ($n, $f) = @_;
|
||||
# anon sub recurs with the sub ref on stack
|
||||
$n < 2 ? $n : $f->($n - 1, $f) + $f->($n - 2, $f)
|
||||
});
|
||||
goto $_[1];
|
||||
}
|
||||
|
||||
print(fib($_), " ") for (0 .. 10);
|
||||
Loading…
Add table
Add a link
Reference in a new issue