haskell - A monad is just a monoid in the category of endofunctors . . . Not all monads are Haskell monads What is a monoid in category theory? For clarification, there's an abuse of terminology here When we say ℤ is a ring we actually means (ℤ, +, 0, ×, 1) is a ring Of course, which operators are being used are often implicit Similarly, when we say ℕ is a monoid we means (ℕ, +, 0) is a monoid
haskell - What are free monads? - Stack Overflow Free Monads Unlike functors, monads aren't uniquely monads There is not just one monad instance for a given functor So for example “a pair of an int and a __”, what are you doing with that int? You could add it, you could multiply it
What is a monad for someone who doesnt want to learn Haskell in order . . . The thing is, most programming languages don't have a sufficiently powerful type system to really express the idea of monads, namely, they don't support higher-kinded polymorphism So, for explaining monads, a quick intro to Haskell syntax is the easiest way The alternative is to introduce it without any programming language at all, using only math syntax – but that doesn't make it easier
What is the compelling scenario for using Monads in C# Maybe I'm just confused on the differences between using monadic principles in a pure vs inpure language? Programming with monads is declarative, describing what you want at a high level rather than the low-level details of how to generate it See the exercises at the end of Brian Beckman's state-monad talk on Channel 9