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 <daniel.is.fischer@web.de> wrote:
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