stack overflow in tail recursive function
Bruno Schneider <[email protected]> Tue, 23 Mar 2010 09:01:54 -0300
| Newsgroups | gmane.comp.lang.haskell.hugs.user |
|---|---|
| Message-ID | <[email protected]> |
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/