アッカーマン関数

問題1.10はアッカーマン関数。また、いつもどおり、schemeで書かれている関数をHaskell

ackermann x y
        | y == 0 = 0
        | x == 0 = 2 * y
        | y == 1 = 2
        | otherwise = ackermann ( x -1 ) ( ackermann x ( y - 1))

で、問題は次の引数のときの値は何か?だから

*Main> ackermann  1 10
1024
*Main> ackermann  2 4
65536
*Main> ackermann  3 3
65536

このような結果になります。また、

f n = ackermann 0 n
g n = ackermann 1 n
h n = ackermann 2 n

の数学的定義を述べよという問題もある。
とりあえず、何パターンかやってみる。

*Main> ackermann  0 2
4
*Main> ackermann  0 3
6
*Main> ackermann  1 2
4
*Main> ackermann  1 3
8
*Main> ackermann  2 2
4
*Main> ackermann  2 3
16
*Main> ackermann  2 4
65536

これをみると、どうやら、fは2*n、gは2^nになるみたいだけど、hがよくわからない。
しょうがないので、こたえをみる。これは、わからなかったや。