aboutsummaryrefslogtreecommitdiff
path: root/challenge-017/veesh-goldman/perl6/second.p6
blob: f816ecf3a102214be3b539d65161505d1f462ec5 (plain)
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env perl6
sub A ($m, $n) { state %memoize; %memoize{$m}{$n} //= _A($m, $n) }

multi sub _A( $m where 0, $n ) { $n + 1 }
multi sub _A( $m, $n where 0 ) { A($m - 1, 1) }
multi sub _A( $m, $n )         { A($m - 1, A($m, $n - 1)) }

sub MAIN ( Int $m, Int $n ) {
  say A($m, $n)
}