I like this idea because having the pure function call at the beginning (rather than at the end, as with do-notation) is more consistent with the original <$>,<*>-notation.
It only slightly bothers me that the bracket notation in this form has nothing to do with lists, so that may be a bit confusing. But this is already true for monad comprehensions. It might make more sense to reuse the parallel list comprehension syntax (https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/syntax-extns.html#parallel-list-comprehensions), as applicatives are "parallel". So, [ i + 2*j | i <- rows | j <- cols ]. On 10/12/2015 11:09 AM, David A Roberts wrote: > Hi, > > I raised this question on #haskell, and was advised that this was > probably the best place to discuss. > > I see that Applicative Do is scheduled for GHC 8.0 [1], and was hoping > that this might also enable support for Applicative Comprehensions [2]. > Is this likely to be the case? If not, would it be difficult to extend > the support for Applicative Do to also handle comprehensions? I'm > willing to submit patches if necessary, but I'm not at all familiar with > GHC internals, so would need some guidance. > > I understand that comprehensions tend not to be used much in idiomatic > Haskell, but I find them to be useful for implementing DSLs, so would > really like to see this be supported. For example, a matrix could be > written in a familiar notation: > >> [ i + 2*j | i <- rows, j <- cols ] > > which is a little more readable (to those not familiar with Haskell) than > >> (\i j -> i + 2*j) <$> row <*> cols > > or > >> do { i <- rows; j <- cols; return (i + 2*j) } > > [1] https://ghc.haskell.org/trac/ghc/wiki/Status/GHC-8.0.1#LandedinHEAD > [2] > https://ghc.haskell.org/trac/ghc/wiki/GeneralizedMonadComprehensions#Applicativefunctor > > -- > David A Roberts > https://davidar.io > > > _______________________________________________ > ghc-devs mailing list > [email protected] > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ ghc-devs mailing list [email protected] http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
