#!/usr/bin/perl
# Idiom #315 Memoization
my %cache;
sub fib {
return $cache{$n} = $n if $n < 2; return $cache{$n} = fib
($n-1) + fib
($n-2); }
print "\n\nCustom memoized implementation\n"; foreach my $n ( 1..10 ) {
}
IyEvdXNyL2Jpbi9wZXJsCgojIElkaW9tICMzMTUgTWVtb2l6YXRpb24KCm15ICVjYWNoZTsKc3ViIGZpYiB7CiAgICBteSAkbiA9IHNoaWZ0OwogICAgcmV0dXJuICRjYWNoZXskbn0gaWYgZXhpc3RzICRjYWNoZXskbn07CiAgICByZXR1cm4gJGNhY2hleyRufSA9ICRuIGlmICRuIDwgMjsKICAgIHJldHVybiAkY2FjaGV7JG59ID0gZmliKCRuLTEpICsgZmliKCRuLTIpOwp9CgpwcmludCAiXG5cbkN1c3RvbSBtZW1vaXplZCBpbXBsZW1lbnRhdGlvblxuIjsKZm9yZWFjaCBteSAkbiAoIDEuLjEwICkgewogICAgcHJpbnQgJyAnIC4gZmliKCAkbiApOwp9Cg==