3 ms·
I disagree. The only sensible introductory text I've found about them is for Scheme - http://www.cs.indiana.edu/~cswords/monads.pdf http://www.cs.indiana.edu/~c
by swannodette 14y ago
I disagree. The only sensible introductory text I've found about them is for Scheme - http://www.cs.indiana.edu/~cswords/monads.pdf http://www.cs.indiana.edu/~cswords/monads.pdf. Folks love to emphasize the types - but how one might implement them matters just as much if not more IMO.
Also, I've found the usage of monads as the building blocks for modular interpreters to shed the most light on their power, utility, and limitations (see the various papers from Steele, Wadler et al, Hudak et al, and Felleisen et al).
- monkeyfacebag 14y ago> but how one might implement them matters just as much if not more IMO This is a false choice. Learning monads through Haskell, you get the forest and the trees! That said, I get that there are legitimate differences of opinion and what worked for me will not necessarily work for others. I feel like some understanding of types (or categories, etc.) is necessary to fully grok monads. Both this article and your linked paper offer some basic explanation of the concept. Tutorials that are essentially implementations of bind are, in fact, missing the forest for the trees.
- cageface 14y agoReally your choice for an introduction to monads puts this in an intro paragraph? Before we begin, it is important to briefly talk about the λ- calculus in the context of termination. In short, the λ-calculus is strongly normalizing and thus non-termination is impossible as a general rule.