このディレクトリの索引
http://pc12.2ch.net/test/read.cgi/tech/1276810079/278
#  [1] 授業単元: C言語プログラミング入門 
#  [2] 問題文:関数の再帰的呼び出しによりAckermann(アッカーマン)関数を計算するプログラムを作れ。同じプログラムを繰り返し処理(ループ計算)により実現できるか考えよ。Ackermann関数は次式で定義される。 
#  

アッカーマン関数(0,N,X) :-
    N > 0,
    X is N + 1.
アッカーマン関数(M,0,X) :-
    M > 0,
    M_1 is M - 1,
    アッカーマン関数(M_1,1,X).
アッカーマン関数(M,N,X) :-
    M > 0,
    N > 0,
    M_1 is M - 1,
    N_1 is N - 1,
    アッカーマン関数(M,N_1,Y),
    アッカーマン関数(M_1,Y,X).