原始再帰関数(primitive recursion)とは一体なんなのでしょうか?
ttp://stackoverflow.com/questions/1712237/how-does-primitive-recursion-differ-from-normal-recursionの回答に、
「原始再帰関数とは他の原始再帰関数で定義されいて自然数の構造の再帰である。」とありますが、
イマイチ分かりません。
例えば、自然数を使った
fac::Int->Int
fac x
| x > 0 = x*fac(x-1)
|x==0 = 1
は原始再帰関数で、
inverse::String->String
inverse value = case (value) of
[]->[]
(x:xs)-> inverse xs ++ [x]
は原始再帰関数では無い。
ということでしょうか?
base caseにヒットして関数が終了するのであればそうなのかな〜と思っていたのですが。