[Haskell-beginners] Alternative

Imants Cekusins imantc at gmail.com
Wed Dec 28 22:14:18 UTC 2016


thank you Tony and Yitzchak.

I may understand it one day ;)

it is important to understand it alright. I remember spending half a day
over unexpected (for me) results of recursive functions that contained
folds. In the end I settled for TChan - a queue with predictable behaviour
(my view of it - not necessarily correct).


Yitzchak, how about this:

Prelude Control.Applicative> *foldl* (<|>) Nothing [Just 1, Nothing, Just
2, Nothing]
Just 1
Prelude Control.Applicative> *foldr* (<|>) Nothing [Just 1, Nothing, Just
2, Nothing]
Just 1

? I guess this is due to the nature of (<|>), no?

Anyway, I'd use asum instead of fold_ for Alternatives.


for non-Alternative cases, Erlang analogy seems to be a useful rule of
thumb for foldl & foldr over shorter lists .

After all, what matters most is what results to expect. *foldl* and *foldr*
may yield different results for the same list & similar processing fn (save
for different arg order).
​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20161228/088cac3c/attachment.html>


More information about the Beginners mailing list