23 Mar
2010
23 Mar
'10
5:31 p.m.
Hi all, I have this tail recursive factorial function: factorial :: Integer -> Integer factorial 0 = 1 factorial n = fat' n 1 where fat' 1 fat = fat fat' n fat = fat' (n-1) (n*fat) Whenever I run it with a number of 20000 or more I get a stack overflow error. It doesn't seem a problem with the large resulting number because, if so, the message should be something like "Garbage collection fails to reclaim sufficient space". Other functions seem to able to handle a larger number of recursive calls. So, what is the problem with this particular function? -- Bruno Schneider http://www.dcc.ufla.br/~bruno/