[Haskell-cafe] Data.Sequence and replicateM
gershomb at gmail.com
Thu Jan 24 17:41:09 CET 2013
On 1/24/13 9:31 AM, Daniel Díaz Casanueva wrote:
> import Control.Monad
> import qualified Data.Sequence as Seq
> type Seq = Seq.Seq
> f :: Monad m => Int -> m a -> m (Seq a)
> f n = fmap Seq.fromList . replicateM n
> g :: Monad m => Int -> m a -> m (Seq a)
> g = Seq.replicateM
> Maybe is just in my test case, where the Int argument is big and the
> monadic action short, but it looks to me that Data.Sequence.replicateM
> can be faster than it is right now.
Are you forcing the full sequence in both cases? In the former case,
you'll get all the actions, but have a thunk containing the result of
Seq.fromList. In the latter, you're performing the actions as you build
the sequence, so the resultant sequence will be fully evaluated.
I imagine that this is the reason that the former seems faster to you.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe