I agree, the function can be tricky to use. But that's not our
problem, we are only to implement it. :)
On Sep 15, 2006, at 05:28 , Brian Brunswick wrote:
On 15/09/06, Lennart Augustsson <[EMAIL PROTECTED]> wrote: On
Sep 14, 2006, at 03:05 , Rohan Drape wrote:
>>> splitStreams [(3,x),(1,y),(3,z),(2,w)]
>> [(3,[x,z]),(1,[y]),(2,[w])]
>
> [snip]
>
>> Furthermore it should work on infinite lists. It can't eat the
whole
>> list before producing any output.
>
> This doesn't seem to make sense? Only at the end of the list can
you
> know that you've collected all the events for each channel. If you
> output anything before scanning to the end, you'd not know if there
> were perhaps more events on that channel?
It makes good sense. Each list will of events will be evaluated
lazily, so thing will appear there as they appear in the input.
I don't think you can do it in Haskell without some magic in the IO/
ST monad.
But even if you could do it, its very hard to safely /use/ the result.
Looking for the next event on any channel runs the risk that
actually there
are no more events ever on that channel, and a resultant scan to
the end of the infinite list!
--
[EMAIL PROTECTED]
Shortsig_rules!
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe