[Haskell-cafe] Data.Sequence and replicateM
Daniel Díaz Casanueva
dhelta.diaz at gmail.com
Thu Jan 24 15:31:10 CET 2013
Hi Cafe,
I was coding this morning when I suddenly found something that surprised
me. It's been a short time since I am really caring about the performance
of my programs. Before, I was just caring about their correctness. So I am
trying different things and profiling to see differences. One difference I
have found surprising is that the function f is MUCH faster and less space
consuming than the function g:
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.
Regards,
Daniel Díaz.
--
E-mail sent by Daniel Díaz Casanueva
let f x = x in x
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130124/99964110/attachment.htm>
More information about the Haskell-Cafe
mailing list