Timeline for answer to What is a monad? by Scott Wisniewski
Current License: CC BY-SA 3.0
Post Revisions
28 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Apr 9, 2022 at 13:28 | comment | added | AndrewC | I have a maths degree and even some algebraists think category theory is a bit obscure and general! The name monad is particularly unhelpful because it slaps people in the face with the fact that they don't understand it AT ALL and gives them no conceptual way in. If it were called Wiring, people would still be discussing Wiring a lot and writing tutorials about how to do Env Wiring (reader), Logging Wiring (Writer), State Wiring, List Wiring, Maybe Wiring, Exception Wiring, etc etc. Wiring Transformers would still be complicated. People would be talking about adding Wiring to other languages. | |
| Aug 28, 2015 at 17:10 | history | edited | Peter Mortensen | CC BY-SA 3.0 |
Copy edited (e.g. ref. <https://en.wiktionary.org/wiki/alongside#Adverb>).
|
| Apr 11, 2014 at 14:10 | comment | added | Nikolaj-K | "...conform to the structure of something called a monad in Category Theory, which is an obscure branch of mathematics." Why exactly is it "obscure"? Because the concepts are only 70 years old and never made it into school curricula so that people generally know about it? Once you invest a few days in learning about natural transformations - two parts (return and join) of the triple which make up a monad - you see that they are indeed the nice and natural ones, amongst all functions. Meanwhile, the mp3 format, an USB stick, or the term "foobar" are pretty ad hoc and not natural. "Man made" | |
| Dec 30, 2012 at 11:56 | comment | added | gwideman | I feel Scott is very much on point. The term "monoid" was really bugging me, so I posted a question about its origin, and got a great answer. stackoverflow.com/questions/14090183/… Seems like if Haskell doesn't get Abelian groups, then "distended wrinkle pods" will still be available as an improved name for monads :-). | |
| Apr 20, 2012 at 11:26 | history | made wiki | Post Made Community Wiki by MathematicalOrchid | ||
| Nov 8, 2011 at 10:05 | history | post merged (destination) | |||
| Jan 15, 2011 at 21:21 | comment | added | Scott Wisniewski | @ShreevastaR Sure. "Expression Decorator" is the first thing that comes to mind. It conveys some meaning about what a Monad does, and how it works. It may not convey as much precision as "monad" does, but I think that's a good thing. | |
| Jan 15, 2011 at 18:01 | comment | added | ShreevatsaR | @Scott: I still don't quite see the difference.... But perhaps better to get to the crux of the matter: can you suggest a better name than "monad"? ("Type operator" is a poor choice, for reasons already mentioned by Jared.) | |
| Jan 15, 2011 at 16:30 | comment | added | Scott Wisniewski | @shreevatsar No, they are not the same. An Abelian Group is not a design pattern. It's a mathematical construct. Monads, in category theory, are also mathematical constructs. My point is not that there are problems with the names of mathematical constructs. My point is that it's bad to name the design pattern after the mathematical construct. | |
| Jan 15, 2011 at 8:01 | comment | added | ShreevatsaR | @Scott: We're moving in circles. There's an exact parallel here between (monad, category theory) and (Abelian group, algebra). Do you agree? (Assuming you do...) In either case, the relevant concepts—the first elements of the pairs—can be understood without learning the entire theory (e.g. anyone can understand what an Abelian group is without knowing the whole of group theory), but this is not a reason for renaming the terms. (Or is it, according to you?) (BTW, please prefix your messages with "@shr..." or I won't be notified.) | |
| Jan 15, 2011 at 5:34 | comment | added | Scott Wisniewski | No. I'm saying that a programmer shouldn't have to understand category theory, that monads are perfectly understood programing concepts without category theory, and that wrapping them with category theory only serves to obfuscate them. I'm not advocating anything with regards to names used in abstract algebra. | |
| Jan 15, 2011 at 5:04 | comment | added | ShreevatsaR | @Scott: So you're effectively proposing renaming "abelian group" as well — effectively saying that for every abstract concept that people haven't yet learnt, we must invent new names, and this is supposed to help matters. :-) | |
| Jan 15, 2011 at 4:42 | comment | added | Scott Wisniewski | I didn't say "abelean group" was an approachable name. I used "distended wrinkle pods" in place of "abelian groups" to point out how foreign a name like "monad" is to a normal person. | |
| Jan 15, 2011 at 1:52 | comment | added | ShreevatsaR | @Scott: The standard name of "Abelian group" is also unapproachable to most people. I don't see a difference at all. | |
| Jan 14, 2011 at 17:25 | comment | added | Scott Wisniewski | I'm saying the standard name of "monad" is unapproachable to most people. It was chosen by type theorists familiar with Category Theory. What makes sense to them, and what normal people are comfortable with, are very different. | |
| Jan 14, 2011 at 8:54 | comment | added | ShreevatsaR | @Scott: You seem to be saying that "distended wrinkle pods" is a worse name than "Abelian group", the standard name. And yet you also say that a made-up name may be beter than "monad", the standard name? | |
| Jan 23, 2010 at 4:07 | comment | added | Thomas Eding | 5: A name is but a name :D But to be honest, I don't see how one could come up with a 'better' name that somehow holds meaning without eschewing some concept of what monads are all about. | |
| Aug 3, 2009 at 23:27 | comment | added | Jared Updike | @Scott: sorry if my extensive comments made it seem I was getting defensive about Haskell. I enjoy your humor about the secret handshake and you will note I said it is more or less true. :-) If you called Abelian Groups "distended wrinkle pods" you would be making the same mistake of trying to give monads a "better name" (cf. F# "computation expressions"): the term exists and people who care know what monads are, but not what "warm fuzzy things" are (or "computation expressions"). If I understand your use of the term "type operator" correctly there are lots of other type operators than monads. | |
| Aug 1, 2009 at 1:21 | comment | added | Scott Wisniewski | Sigh... I'm not making an attack on Haskell ... I was making a joke. So, I don't really get the bit about being "ad hominem". Yes, the calculus was "designed". That's why, for example, calculus students are taught the Leibniz notation, rather than the icky stuff Netwton used. Better design. Good names help understanding a lot. If I called Abelian Groups "distended wrinkle pods", you may have trouble understanding me. You might be saying "but that name is nonsense", no one would ever call them that. To people who have never heard of category theory "monad" sounds like nonsense. | |
| Jul 31, 2009 at 22:55 | comment | added | Jared Updike | "Finally it will provide support for combining itself with another monad to produce a composite monad." Are you talking about >>= or monad transformers? Are you saying "a monad provides a way for combining two monadic actions of the same type (bind or >==)"? or "a monad usually provides a way of layering itself with other monads as in monad transformers"? Your language here is sloppy and confusing, possibly misleading. | |
| Jul 31, 2009 at 22:53 | comment | added | Jared Updike | Re: 4, 5: The "Secret handshake" thing is a red herring. Programming is full of jargon. Haskell just happens to call stuff what it is without pretending to rediscover something. If it exists in mathematics already, why make up a new name for it? The name is really not the reason people don't get monads; they are a subtle concept. The average person probably understands addition and multiplication, why don't they get the concept of an Abelian Group? Because it is more abstract and general and that person hasn't done the work to wrap their head around the concept. A name change wouldn't help. | |
| Jul 31, 2009 at 22:51 | comment | added | Jared Updike | The Maybe monad is not really equivalent to Nullable<T>. More accurately I would say the type Maybe T is equivalent to Nullable<T> more or less (except all types in Haskell are non-nullable by default (useful! e.g. all strings are always non-null); in C# Nullable<string> for example doesn't compile since it is always nullable whether you like it or not) but the use of Maybe as a Monad is more general than what you might do in C# with Nullable<T>; any code using monads can use the Maybe monad but no equivalent abstraction is exists and is idiomatic in C#. | |
| Jul 31, 2009 at 22:42 | comment | added | Jared Updike | Point 1 and 2 above are correct and useful. Points 4 and 5 are sort of ad hominem, even if more or less true. They don't really help explain monads. | |
| Jul 31, 2009 at 22:40 | comment | added | Jared Updike | Monads weren't 'designed', they were applied from one domain (category theory) to another (I/O in purely functional programming languages). Did Newton 'design' the calculus? | |
| Feb 22, 2009 at 11:01 | history | edited | jpalecek | CC BY-SA 2.5 |
s/obsecure/obscure/
|
| Feb 21, 2009 at 12:22 | history | edited | Iraimbilanja | CC BY-SA 2.5 |
deleted 1 characters in body
|
| Aug 31, 2008 at 19:39 | history | edited | Scott Wisniewski | CC BY-SA 2.5 |
deleted 1 characters in body
|
| Aug 31, 2008 at 19:19 | history | answered | Scott Wisniewski | CC BY-SA 2.5 |