Camelia
Prev: No parameter definition - perl 5 style

Fibonacci

Note! This site is about Perl 6.
If you are looking for a solution for the current production version of Perl 5, please check out the Perl 5 tutorial.

tutorial/subroutines/fibonacci.p6

#!/usr/bin/env perl6
use v6;

my $N = 10; # @*ARGS;

say "Computing Fibonacci of {$N}";
say "Result: " ~ fib_recursive($N);
say "Result: " ~ fib_r($N);
say "All: " ~ join " ", fib($N);

sub fib_recursive ($n) {
    return 1 if $n == 1 or $n == 0;
    return fib_recursive($n-1)+fib_recursive($n-2);
}

sub fib_r ($n) {
    return 1 if $n == (1|0);
    return fib_r($n-1)+fib_r($n-2);
}

sub fib ($n) {
    my @fibs;

    @fibs.push(1) if $n > 0;
    @fibs.push(1) if $n > 1;

    for 2..$n {
        @fibs.push(@fibs[*-1]+@fibs[*-2]);
    }
    return @fibs;
}



The Perl 6 Tricks and Treats newsletter has been around for a while. If you are interested to get special notification when there is new content on this site, it is the best way to keep track:
Email:
Full name:
This is a newsletter temporarily running on my personal site (szabgab.com) using Mailman, till I implement an alternative system in Perl 6.
Gabor Szabo
Written by Gabor Szabo

Published on 2012-01-01


Prev: No parameter definition - perl 5 style

Comments

In the comments, please wrap your code snippets within <pre> </pre> tags and use spaces for indentation.
comments powered by Disqus
Suggest a change
Elapsed time: 2.66683259

Perl 6 Tricks and Treats newsletter

Register to the free newsletter now, and get updates and news.
Email:
Name: