a faster, accumulating mapM (was Re: [Haskell-cafe] mapM vs mapM_ performance)

Luke Palmer lrpalmer at gmail.com
Thu Apr 24 19:45:45 EDT 2008


On Thu, Apr 24, 2008 at 11:28 PM, Ben <midfield at gmail.com> wrote:
>  2) Is there a reason to not use mapM3 above?

Yes, there certainly is.  mapM3 is not equivalent to mapM; it is too strict:

*Main> take 3 $ head $ mapM return [1,2,3,4,undefined]
[1,2,3]
*Main> take 3 $ head $ mapM3 return [1,2,3,4,undefined]
[*** Exception: Prelude.undefined

So, like foldl', mapM3 seems a viable alternative for mapM, but not a
replacement.

Luke


More information about the Haskell-Cafe mailing list