On 2012-04-07 23:35, Myles C. Maxfield wrote:
CC: Maintainers of STMonadTrans, Vector, and JuicyPixels
Hello,
I am writing a Haskell Attoparsec parser which will modify 2-d arrays
of small values (Word8, Int8, etc.).
My first idea was to simply parse all the deltas, and later apply them
to the input list. However, I can't do that because the value of the
deltas depend on the value they're modifying.
My first pass at this program used a function of the form:
p :: [[Word8]] -> Parser [[Word8]]
This approach works, however, the program uses far too much memory.
Does the parser really need the input to determine what to do? Or is the parse
tree the same regardless? In the latter case, you could perhaps rewrite it to
p :: Parser ([[Word8]] -> [[Word8]])
or when working with mutable vectors
p :: MVector s Word8 -> Parser (ST s ())
So instead of explicit deltas, the deltas can just be the function that applies
them.
Twan
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe