我想更好地理解单子(monads)和幺半群(monoids)之间的关系,希望能从实际应用中了解这个问题。如果我的问题不太明确,还请多多包涵,因为我还在学习中。
例如,假设我有以下内容:
trait Monoid[T] {
def zero: T
def combine: (T,T) => T
}
以下内容来源于这里:
trait Monad[+M[_]] {
def unit[A](a: A): M[A]
def bind[A, B](m: M[A])(f: A => M[B]): M[B]
}
Monad和Monoid特征之间是否存在关系?例如,我是否可以将Monad视为Monoid(假设我正确理解Monad是Monoid的一种特殊情况)?