
ghci still is not happy if we have many rows...
Prelude> :load Table.IO
[1 of 1] Compiling Table.IO ( Table/IO.hs, interpreted )
Ok, modules loaded: Table.IO.
*Table.IO> let maxTableColumnWidths = foldr ((evalList .) . zipWithD
max) [] . map (map length)
*Table.IO> let maxTCWs = evalList . foldr (zipWithD max) [] . map (map length)
*Table.IO> maxTableColumnWidths (replicate 1000000 ["hello", "world"])
*** Exception: stack overflow
*Table.IO> maxTCWs (replicate 1000000 ["hello", "world"])
*** Exception: stack overflow
I hadn't thought of using ByteStrings since I don't know what they are
:-). I'll have to look into it, but I'm assuming that ByteStrings will
give some constant time/space improvement? I think it won't help with
my first problem though since what's happening is that the lazy
function calls are piling up too deep (at least thats what I think is
happening).
Thank you
Keith
On Sat, Feb 21, 2009 at 6:21 PM, Daniel Fischer
Am Sonntag, 22. Februar 2009 00:16 schrieb Daniel Fischer:
maxTableColumnWidths = foldr ((evalList .) . zipWithD max) []
Oops again:
maxTableColumnWidths = foldr ((evalList .) . zipWithD max) [] . map (map length)
maxTCWs = evalList . foldr (zipWithD max) []
maxTCWs = evalList . foldr (zipWithD max) [] . map (map length)
Cheers, Daniel