[Haskell-cafe] Sub-optimal [code]
andrewcoppin at btinternet.com
Sun Feb 20 16:10:16 CET 2011
On 16/02/2011 11:09 PM, Max Bolingbroke wrote:
> Thinking about it some more, this example is actually quite
> interesting because if you *prevent* the list from being floated the
> forM gets foldr/build fused into a totally listless optimal loop. It
> really does seem like a shame to disable that optimisation because of
> the floating... if only the fusion hit before float-out was run.
It seems to me that in this case, I'm using a list when what I actually
"mean" is a stream. (Here "stream" refers to the construct used in the
stream-fusion package.) I can't actually *want* a physical data
structure to be constructed - so why am I asking for one?
It sems to me that lots of Haskell code uses lists where it actually
means streams... The stream-fusion package uses streams to fuse together
list operations, but I rather suspect it would be cleaner and more
helpful if people wrote code explicitly in terms of streams in the first
place, except for the small minority of places where you really do want
an actual list.
But that's just my opinion...
More information about the Haskell-Cafe