http://www.perlmonks.org?node_id=856208


in reply to Re: fibonacci numbers using subroutine?
in thread fibonacci numbers using subroutine?

Just to show off, here's a Perl 6 solution:

sub MAIN($limit as Int) { say (0, 1, *+* ... *)[$limit]; }

Which you call as

perl6 fib.pl 8

To obtain the 8th fibonacci number.

As an explanation, MAIN takes its arguments from the command line, and is run automatically at startup. as Int converts the command line argument (which is a string) to an integer (this is not sctrictly necessary). 0, 1, *+* ... * is a lazy, infinite list starting with 0 and 1, and then is built by summing the two previous elements. [$limit] takes the $limit's element of that list, with a zero-based index. (Which is why the fibonacci sequence starts with 0, 1 instead of 1, 1 in that program).

Perl 6 - links to (nearly) everything that is Perl 6.