4 ms·
> I'm not sure why the author goes out of his way to avoid saying "monad," Explained here: http://fsharpforfunandprofit.com/about/#banned http://fsharpforfuna
by bunderbunder 12y ago
> I'm not sure why the author goes out of his way to avoid saying "monad,"
Explained here: http://fsharpforfunandprofit.com/about/#banned http://fsharpforfunandprofit.com/about/#banned
- slapresta 12y agoSo they decide to cripple themselves, intentionally restricting their knowledge to avoid being seen as pedantic? I could understand trying to avoid those words for beginners, but it doesn't seem like the site targets beginners only.
- andor 12y agoHe explains how and why his code works. Adding too much formal terminology would make it seem like there is another layer of theory you need to grasp before you truly understand what's going on. Complicated terminology is elitist to beginners, because it nullifies first successes in understanding functional programming.
- dons 12y agoBecause using sloppy language is so much better...
- the_af 12y agoI understand why they do it, but I think they're doing themselves a disservice. It's one thing to speak in jargon and wrongly assume your audience will follow you: "So this is obviously a catamorphism. This evidently a job for Kleisli arrows!". And a completely different thing is to construct a solution step by step, using familiar ideas, and then show that it can be seen as a monad, then give a brief explanation of why monads are useful and what motivates them. Which is exactly what the extremely didactic Learn you a Haskell site does (seriously: look at their example for the Writer Monad. It doesn't get more didactic and step-by-step than that) By avoiding the correct technical terms, they are: - Losing precision. - Failing to generalize the concept. - Underestimating their audience's ability to understand new concepts when property explained. The last one in particular kills me. I for one do not assume Visual Basic programmers are incapable or unwilling to learn new things.
- bunderbunder 12y agoIf you're familiar with the psychological phenomenon known as priming, that may help help to explain the situation. For someone who's suffered through a few too many many blog posts that explain monads poorly, it is possible that simply mentioning the m-word, even in the very last sentence of the article, may inhibit their ability to comprehend the process. Because of that, there's a certain genius to the article's approach: Give folks who've been struggling with monads and arrows the best possible chance to grasp the concept without being encumbered by all the baggage that has built up around the terminology. If they do get the concept, great, and they're virtually guaranteed to realize shortly afterward, "Oh hey, forehead smack, those are monads!" (Incidentally, for people who've found themselves thrust into this unfortunate situation, a chapter titled A Fistful of Monads probably isn't likely to help much.) To that end, I'd even go so far as to say your worries about that last bullet point underestimate the audience's ability to understand new concepts when properly explained much worse than the author did.
- steveklabnik 12y ago> even in the very last sentence of the article, I am not a psychologist, but isn't part of the definition of priming that it happens before? How would saying something afterwards harm your ability to previously understand something? Well, I guess I could see how that'd be possible, but I'm not sure that's priming anymore.
- tlarkworthy 12y agoI don't read every article top to bottom, I would waste too much time doing that. I read the intro, and if I like, I estimate how long it will take me with a full scroll to the bottom. I also read the bottom so I know the point we are working up to. Sometimes the article is too long and I skip an overly descriptive middle section.
- bunderbunder 12y agoWith complicated subjects sometimes you need to read the explanation a few times before it completely makes sense.