プログラミングのお題スレ Part18
(ID:5WkJC33Jのみ表示中)
戻る
630253 [sage]

AAS

NG

>>614 Perl5、>>624 を修正。 >>626 あら正規表現で書けちゃうのかイナ…
use feature qw{signatures say}; no warnings 'experimental';
sub A($m, $n) {
 $m ? $n
  ? do{ my ($m2, $n2) = ($m-1, $n-1);
     push @$l, "A($m2, "; push @$r, ')';
     say @$l, "A($m, $n2)", @$r; A($m2, A($m, $n2)) }
  : do{ my ($m2, $n2) = ($m-1, 1);
     say @$l, "A($m2, $n2)", @$r; A($m2, $n2)}
  : do{ my $s = $n + 1; say @$l, $s, @$r; pop @$l; pop @$r; $s };
}
($m, $n) = (2, 1);
say "A($m, $n)";
A($m, $n);

実行結果
$ perl 18_605_Ackermann_func.pl
A(2, 1)
A(1, A(2, 0))
A(1, A(1, 1))
A(1, A(0, A(1, 0)))
A(1, A(0, A(0, 1)))
A(1, A(0, 2))
A(1, 3)
A(0, A(1, 2))
A(0, A(0, A(1, 1)))
A(0, A(0, A(0, A(1, 0))))
A(0, A(0, A(0, A(0, 1))))
A(0, A(0, A(0, 2)))
A(0, A(0, 3))
[全て表示]

2020/10/03(土)14:01:25.06(5WkJC33J.net)


戻る
ver.151005sp