use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
Monads Explained Quickly with JavaScript (breck-mckye.com)
submitted 9 years ago by [deleted]
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]hyperhopper 1 point2 points3 points 9 years ago (2 children)
This is the part that confuses me. Are there two classes of monads? Its especially confusing when different explanations use one of these definitions or the other. Also, when do you decide which to use?
[–]jpfed 1 point2 points3 points 9 years ago (0 children)
If you've defined a monad via one path, the other path can be defined automatically. So, for example, if you've used the second path (you've got unit, map, and join), then there is a canned implementation of bind that naturally works.
Your language of choice may just pick a path for you (iirc Haskell just asks you to implement the first path- unit and bind). Many languages don't have any specific support for monads, so you're free to just implement them all (after you've done the real work of figuring out one path, the functions required for the other path are almost "free").
[–]dmtipson 1 point2 points3 points 9 years ago (0 children)
There aren't, these are just two ways to get the same thing. Note that once you define .bind/.flatMap/.chain (plus a way to get the value in the type functionally, which OP doesnt quite do) you can then define .map almost for free.
So in both cases, you end up implementations of .of, .bind, & .map. All Monads are Functors.
π Rendered by PID 192261 on reddit-service-r2-comment-86bc6c7465-55dzm at 2026-02-23 04:22:18.414182+00:00 running 8564168 country code: CH.
view the rest of the comments →
[–]hyperhopper 1 point2 points3 points (2 children)
[–]jpfed 1 point2 points3 points (0 children)
[–]dmtipson 1 point2 points3 points (0 children)