#!/usr/bin/perl

# Idiom #315 Memoization

use Memoize;

# Compute Fibonacci numbers

sub f {
    my $n = shift;
    return $n if $n < 2;
    f($n-1) + f($n-2);
}

memoize('f');

print "\n\nFast implementation using CPAN Memoization\n";
foreach my $n ( 1..10 ) {
    print ' ' . f( $n );
}
