[Haskell-cafe] List instance of Alternative: why (++)?
cdsmith at gmail.com
Sun May 28 16:11:12 UTC 2017
My understanding of the proposed instance was that if xs >>= f is , then
(xs >>= f) | (ys >>= f) would be ys >>= f. That may not necessarily be
f 42 = 
f _ = 
xs = [1,2,3]
ys = 
On Sun, May 28, 2017 at 12:24 AM, Damian Nadales <damian.nadales at gmail.com>
> > It's hard to look at laws, because there's apparently little agreement on
> > the proper laws for Alternative. It looks possible that as an
> > and Alternative, this would be fine; but the Alternative instance you
> > propose would work in odd ways with the Monad instance. That is, if f x
> >  for any x in (non-empty) xs, then something like (xs <|> ys) >>= f
> > yield an empty list, while (xs >>= f) <|> (ys >>= f) would not. But,
> In this case `(xs >>= f) <|> (ys >>= f)` will also be empty as far as
> I can see...
> I'm also trying to make some sense out of this definition of
> alternative for lists. For `Maybe` we also have a left biased
> alternative, and despite this I find it quite useful...
> > isn't a law or anything, you could chalk it up as counter-intuitive, but
> > disqualifying.
> > On Fri, May 5, 2017 at 11:12 PM, Theodore Lief Gannon <tanuki at gmail.com>
> > wrote:
> >> Fiddling around, I found myself wanting:
> >> coalesce :: [a] -> [a] -> [a]
> >> -- or -- :: (Foldable t) => t a -> t a -> t a
> >> coalesce a b = if null a then b else a
> >> I expected this to be (<|>) (it is for Maybe!) but instead I find no
> >> canonical implementation of it anywhere, and what seems like a useless
> >> instance Alternative . What's the rationale?
> >> _______________________________________________
> >> Haskell-Cafe mailing list
> >> To (un)subscribe, modify options or view archives go to:
> >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> >> Only members subscribed via the mailman list are allowed to post.
> > _______________________________________________
> > Haskell-Cafe mailing list
> > To (un)subscribe, modify options or view archives go to:
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> > Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe