
On Thu, Feb 26, 2015 at 6:37 PM, Greg Fitzgerald
Those operators are for Power Users - why put them in the Prelude?
.. because without them that whole Applicative thing that we're bringing in as a superclass of Monad with the AMP is cut off at the knees. Applicative sugar is typically used like both f (x,y) = (,) <$> x <*> y or traverse f (x:xs) = (:) <$> f x <*> traverse f xs traverse f [] = pure [] Without (<$>), (<*>) from Applicative is quite difficult to use. both f (x,y) = pure (,) <*> x <*> y is much less efficient and both f (x,y) = fmap (,) x <*> y is painfully far from idiomatic. -Edward -Greg
Dne út 24. 2. 2015 16:39 uživatel Edward Kmett
napsal: We have a couple of weeks until the third release candidate for GHC 7.10 goes out the door.
Along the way with the last couple of release candidates folks have
found
some problems with the way we implemented the AMP. [1][2]
Most notably, we failed to include (<$>) in the Prelude, so the standard idiom of
foo <$> bar <*> baz <*> quux
doesn't work out of the box!
I'd like to include (<$>) in the Prelude in RC3.
I'd also like to invite discussion about whether folks believe we should include (<$) out of the box.
(<$) has been a member of Functor for a long time, which is only visible if you import it from Data.Functor or bring in Control.Applicative. There is an idiom that you use (<*) and (<$) to point to the parts of the structure that you want to keep the answers from when building longer such Applicative chains.
Discussion Period: 2 weeks
Thank you, -Edward Kmett
[1] http://www.reddit.com/r/haskell/comments/2wzixa/shouldnt_be_in_prelude/ [2] https://plus.google.com/115504368969270249241/posts/URzeDWd7qMp _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries