Hi

I've written a function that is tail-recursive and takes
a list(queue) as one of its arguments.
However the function fails because of
"Stack space overflow"(GHC) or "ERROR - Garbage collection fails to reclaim sufficient 
space"(hugs).

For example (simplified), both of these results in stack-overflow:
f1 100000 [0,1,2], and even
f2 100000 [0,1,2],

where,
f1 0 l = l
f1 n l = f (n-1) $ take 3 $ l ++ [0,1]

f2 0 l = l
f2 n l = f2 (n - 1) $! (take 3 $ l ++ [0,1])

Why f2 overflows?

How to avoid this stack-overflow?

_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to