
We want to combine all of them, like xs # map $ (+ 3) . snd And xs $$ map $ (+ 3) . snd - don't look nice. By the way, ($$) is already heavy use at pretty, conduit, enumerator, snap-core By the way, in OCaml we have next syntax for objects: object #field so, (#) isn't against ML In Data.Sequence is already defined (|>), (<|) and (:>). But not (<:) In Platform, fgl package, Data.Graph.Inductive.Graph is already defined (&). If there are many disadvantages to use (#), (&) or (|>) we could use something more neutral, like (.:) : xs .: map $ (+ 3) . snd (.:) is free. It is only use in some packages, like aeson. David Menendez-2 wrote
On Thu, Oct 10, 2013 at 10:13 AM, Dan Doel <
dan.doel@
> wrote:
On Thu, Oct 10, 2013 at 4:46 AM, Simon Peyton-Jones <
simonpj@
> wrote:
F# uses (|>). Maybe (#) is good. To me (&) looks too commutative because it’s usually used for conjunction.
I mentioned this on the core list, but I'll mention it here, too:
I don't like (|>), because once you have this operator, you also might as well have the functorial version. We have ($) and (<$>), and lens has (&) and (<&>). The latter is useful for functorial 'for blocks':
myFunctorValue <&> \x -> ...complex expression...
I actually think it's (significantly) more useful than (&). But, I think (<|>>) is a pretty awful name for it, so I'd prefer a name that makes both palatable.
I'm still not convinced we need flipped application in general[1], and I'm sure we don't need new name suggestions at this point, but:
Consider <**> :: f a -> f (a -> b) -> f b.
That suggests <$$> :: f a -> (a -> b) -> f b by analogy, so maybe $$ :: a -> (a -> b) -> b? This avoids the downsides of & while maybe being less ugly to combine with things than |>. Also, it looks like $, suggesting they're related.
[1]: Although it's certainly convenient for some idioms, like working with lenses.
-- Dave Menendez <
dave@
> <http://www.eyrie.org/~zednenem/>
_______________________________________________ Libraries mailing list
Libraries@
-- View this message in context: http://haskell.1045720.n5.nabble.com/Flipped-function-application-tp5738131p... Sent from the Haskell - Libraries mailing list archive at Nabble.com.