bind can be composed of fmap and join, so do we have to use monadic functions a -> m b?
问题 I don't use Haskell a lot, but I understand the concept of Monads. I had been confused by Kleisli triple, and the category, however, fmap and join Although Haskell defines monads in terms of the return and bind functions, it is also possible to define a monad in terms of return and two other operations, join and fmap . This formulation fits more closely with the original definition of monads in category theory. The fmap operation, with type (t → u) → M t → M u , takes a function between two