猫中 AN => A 的幺半群实例

Monoid instance for A => A in Cats

函数 A => A 是幺半群,identityempty,复合为 combine。不幸的是,我没有在 cats 库中找到它。该库是否为这些函数提供了一个幺半群实例?

A => M[A] 呢,其中 M 是 monad 还是 applicative?

Cats 在 instances/function.scala 中有一个 A => A 的 Monoid 实例。

A => M[A] 对于 Monad M 接缝形成一个 Monoid 与 a => M.pure(a) 作为 empty 以下 combine op:

def compose(f1 = A => M[A], f2 = A => M[A]): A => M[A] =
  a => f1(a).flatMap { e => f2(e) }

这并不意味着在库中实现。
幺半群定律的证明留作 reader.

的练习