[Haskell-cafe] parsec manyTill stack overflow

Felipe Lessa felipe.lessa at gmail.com
Fri Jul 4 17:11:35 EDT 2008


On Fri, Jul 4, 2008 at 5:31 PM, Badea Daniel <badeadaniel at yahoo.com> wrote:
>> parse (manyTill anyChar eof) "" ['a'|x<-[1..1024*1024]]
> *** Exception: stack overflow

The usual solution applies: move the data from the stack to the heap. Try using

manyTill' act end = go []
  where
    go acc = choice [end >> return (reverse acc)
                    ,act >>= \x -> go (x:acc)]

-- 
Felipe.


More information about the Haskell-Cafe mailing list