[Haskell-cafe] for = flip map

Christopher Done chrisdone at googlemail.com
Wed Mar 28 22:19:34 CEST 2012


On 28 March 2012 22:05, Matthew Steele <mdsteele at alum.mit.edu> wrote:
> Doesn't for already exist, in Data.Traversable?   Except that for =
> flip traverse.

Traverse doesn't fit the type of fmap, it demands an extra type constructor:

traverse :: (Traversable t,Applicative f) => (a -> f b) -> t a -> f (t b)

fmap :: Functor f => (a -> b) -> f a -> f b

Note the (a -> f b) instead of (a -> b).

E.g.

fmap :: (a -> b) -> [a] -> [b]

can't be expressed with traverse, you can only get this far:

traverse :: (a -> [b]) -> [a] -> [[b]]

Unless I'm missing something.



More information about the Haskell-Cafe mailing list