[Haskell-beginners] Better intro to the All About Monads tutorial?

Michael Turner michael.eugene.turner at gmail.com
Sun Jun 6 01:50:08 UTC 2021


I've done some work on this page:

https://wiki.haskell.org/All_About_Monads

I could use some help in improving my improvements

1. Beginners -- if you haven't looked at monads yet, does this new
intro boost your confidence?

2. Those who help beginners here -- have I committed any technical errors?

I was a little frustrated about the text as it stood. For example:

"... a monad is a way to structure computations in terms of values and
sequences of computations using typed values. Monads allow the
programmer to build up computations using sequential building blocks,
which can themselves be sequences of computations. The monad
determines how combined computations form a new computation and frees
the programmer from having to code the combination manually each time
it is required."

The problem with this was that you could substitute "compiler" or "C++
class"  and it would be not much less true and not much more
uninformative. The approach I took to rewriting (aside from where I
take the reader's hand gently at the beginning) was to try to anchor
the treatment more in concepts that the reader might already
understand. The two main concepts were were pipelines (as in shell
programming) and "cross-cutting concerns" (with links to Wikipedia
articles for readers who might not know one or the other or both.)
I've left almost all of the original wording intact and just wrote
around it. Perhaps it could be trimmed, maybe even a lot.

I don't understand monads well enough to write one myself yet. But I
think a newbie perspective can help in writing for newbies: unlike the
expert, the sources of confusion and incomprehension are fresh in your
mind, as are the ways you got past them.

Regards,
Michael Turner
Executive Director
Project Persephone
1-25-33 Takadanobaba
Shinjuku-ku Tokyo 169-0075
Mobile: +81 (90) 5203-8682
turner at projectpersephone.org

Understand - http://www.projectpersephone.org/
Join - http://www.facebook.com/groups/ProjectPersephone/
Donate - http://www.patreon.com/ProjectPersephone
Volunteer - https://github.com/ProjectPersephone

"Love does not consist in gazing at each other, but in looking outward
together in the same direction." -- Antoine de Saint-Exupéry


More information about the Beginners mailing list