whenJust vs. forM_ (Was: Add isLeft/isRight to Data.Either)
lemming at henning-thielemann.de
Sat Dec 8 15:53:42 CET 2012
On Fri, 7 Dec 2012, Thomas Schilling wrote:
> On 7 December 2012 09:25, Erik Hesselink <hesselink at gmail.com> wrote:
>> There is no need to define whenJust, since it is just a specialization
>> of forM_ from Data.Foldable.
> I don't know if that's such a good argument. I prefer my code
> readable -- too much abstraction can have a seriously bad effect on
> that. As a simple rule, if the user has to do type inference in their
> head, readability suffers.
> In this case, "forM_" implies we're iterating over something container
> like, "whenJust" means "I want to do something if this thing yielded a
> result". It depends on the context whether a "Maybe" is behaving more
> container-like or is indicating the presence of a result where there
> may not have been one.
Too much abstraction can certainly reduce readability. In this case I
interpret Maybe as a list that can contain at most one element. This way I
can use all the nice functions from Data.Foldable for Maybe.
More information about the Libraries