Duncan Coutts <[EMAIL PROTECTED]> writes: > Perhaps I misunderstood but I think Alexey means that he wants to > accumulate several different histograms (ie different arrays) but to > only make one pass over the input data.
This is precicely my problem, too. > The form of accumArray does not make that possible (unless one > managed to pack the different histograms into different parts of the > same array). This would have been a good match for my case. Of course, that is a bit of a hack, and it would be much nicer and safer to do an accumArray with tuple elements. But I need to use an UArray in order to avoid the array filling up with unevaluated thunks, and - correct me if I'm wrong - there's no way to do a 'seq' before accumArray's insertion for complex types. So the stack blows up. /me wishes for s/Data.Array.Unboxed/Data.Array.Strict/g and instances for arbitrary types. Anyway, I thought of using offsets in the same UArray too late, and chose to finish my ST-based implementation instead. > If a fold using a pure persistent map type really is too slow then it > should still be possible to do an ST implementation in a reasonably > elegant way using a foldr on the input list, accumulating an ST action. Or must mapM_ an insert operation (in ST) over the input data? -k -- If I haven't seen further, it is by standing in the footprints of giants _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
