2017-03-18 53 views
1

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

A => M[A]怎么样,其中M是monad还是applicative?

回答

2

猫在instances/function.scala中的实例为A => A

A => M[A]一个单子M接缝,以形成形成具有a => M.pure(a)一个Monoid作为empty以下combine OP:

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

这并不会apeart到库中来实现。
幺半群法则的证明留给读者作为exersise。

+0

非常感谢。是'X => A [X]',其中'A'是适用的,是一个幺半群? – Michael

+0

monad只是内生工程的范畴中的一个monoid,有什么问题? –

+0

@Michael你可以在没有'flatMap'的情况下写一个'combine'吗? – OlivierBlanvillain

相关问题