Mutual recursion: Difference between revisions

→‎{{header|Perl}}: remove unnecessary prelude; improve clarity
(Updated D entry)
(→‎{{header|Perl}}: remove unnecessary prelude; improve clarity)
Line 1,417:
 
=={{header|Perl}}==
<lang perl>usesub strictF { my $n = shift; $n ? $n - M(F($n-1)) : 1 }
sub M { my $n = shift; $n ? $n - F (M ($n-1)) : 0 }
use warnings;
 
# Usage:
# For mutually recursive functions,
forforeach my $fsequence (\&F, \&M) {
# predeclaring is probably a good idea.
print join(' ', map $fsequence->($_), 0 .. 19), "\n";
sub M; sub F;
 
sub F { my $n = shift; $n ? $n - M F $n-1 : 1 }
sub M { my $n = shift; $n ? $n - F M $n-1 : 0 }
for my $f (\&F, \&M) {
print join(' ', map $f->($_), 0 .. 19), "\n";
}</lang>
{{out}}
Anonymous user