[Haskell-cafe] for = flip map

Sjoerd Visscher sjoerd at w3future.com
Thu Mar 29 23:03:59 CEST 2012


Some more bikeshedding:

Perhaps ffor, as in

    ffor = flip fmap

or perhaps

    infixr 0 <$$>
    (<$$>) = flip (<$>)

    xs <$$> \x -> ...

(cf. <**>)

In both cases they should go in Data.Functor

Sjoerd

On Mar 28, 2012, at 11:26 PM, ezra at ezrakilty.net wrote:

> I would very much like to see a standard function for "flip map" along
> these lines. I think it would make a lot of code more readable.
> 
> Like the OP, I use "for" in my own code. It's unfortunate that
> Data.Traversable takes the name with another type. Two options would be
> to (a) reuse the name in Data.List and force people to qualify as
> necessary, or (b) choose another name for "flip map".
> 
> Regarding other possible names: forall is a keyword and forAll is used
> by QuickCheck. One possibility would be "foreach".
> 
> Ezra
> 
> On Wed, Mar 28, 2012, at 10:19 PM, Christopher Done wrote:
>> 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.
>> 
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
> 
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
> 

--
Sjoerd Visscher
https://github.com/sjoerdvisscher/blog








More information about the Haskell-Cafe mailing list