Hofstadter Figure-Figure sequences: Difference between revisions

→‎{{header|Perl 6}}: use orcish maneuvre to cut down on verbosity
m (→‎{{header|Perl 6}}: add "works with")
(→‎{{header|Perl 6}}: use orcish maneuvre to cut down on verbosity)
Line 1,581:
my %s = 1 => 2;
 
sub ffr ($n) { %r{$n} //= ffr($n - 1) + ffs($n - 1) }
sub ffs ($n) { %s{$n} //= (grep none( map &ffr, 1..$n), max(%s.values)+1..*)[0]; }
return %r{$n} if %r{$n}:exists;
%r{$n} = ffr($n - 1) + ffs($n - 1);
return %r{$n};
}
 
sub ffs ($n) {
return %s{$n} if %s{$n}:exists;
%s{$n} = (grep none( map &ffr, 1..$n), max(%s.values)+1..*)[0];
return %s{$n};
}
 
my @ffr = map &ffr, 1..*;
 
my @ffs = map &ffs, 1..*;
 
say @ffr[^10];
 
say "Rawks!" if 1...1000 eqv sort |@ffr[^40], |@ffs[^960];</lang>
Output:
10,333

edits