Haskell Space Overflow
Compilei este programa e estou tentando executá-lo.
import Data.List
import Data.Ord
import qualified Data.MemoCombinators as Memo
collatzLength :: Int -> Int
collatzLength = Memo.arrayRange (1, 1000000) collatzLength'
where
collatzLength' 1 = 1
collatzLength' n | odd n = 1 + collatzLength (3 * n + 1)
| even n = 1 + collatzLength (n `quot` 2)
main = print $ maximumBy (comparing fst) $ [(collatzLength n, n) | n <- [1..1000000]]
Estou recebendo o seguinte do GHC
Stack space overflow: current size 8388608 bytes.
Use `+RTS -Ksize -RTS' to increase it.
Presumo que essa seja uma das coisas que "estouro de espaço" que ouvi. (Sou bem novo em Haskell.) Como faço para corrigir isso? Preciso reescrever collatzLength para ser recursivo de cauda?