[Haskell-cafe] Vector to Monadic Stream and back, how?
Don Stewart
dons at galois.com
Sat Apr 17 19:56:32 EDT 2010
rl:
> On 14/04/2010, at 09:05, Xiao-Yong Jin wrote:
>
> > I want to use 'mapM' on Data.Vector.Vector, but it looks
> > like the only 'mapM' defined is in
> > Data.Vector.Fusion.Stream.Monadic. I'm able to use 'stream'
> > and 'liftStream' to convert a 'Vector' to a monadic stream,
> > on which I can use 'mapM'. But I couldn't find a way to
> > convert the monadic stream back to Vector without using an
> > intermediate list. I don't think I understand the internal
> > of monadic stream that much. But it looks not so fusion to
> > me. Is it the only way back to Vector?
>
> Unfortunately, it's not at all clear to me how to implement mapM on
> vectors/arrays without going through an intermediate list for
> arbitrary monads (it's easy for ST and IO). The next version of vector
> will include mapM and friends but it will probably be implemented much
> like you describe, with appropriate specialisations for ST and IO.
>
ST and IO should be good enough for anyone :-)
-- Don
More information about the Haskell-Cafe
mailing list