【发布时间】:2017-05-16 21:17:33
【问题描述】:
我正在尝试理解类型类,到目前为止,我了解了 Monoids,它们很简单:
object AbstractAlgebra {
case class Pair[A,B](a: A, b: B)
trait Monoid[T] {
def times(t1: T, t2: T): T
def unit: T
}
object Monoid {
implicit object MonoidIntPlus extends Monoid[Int] {
def times(i1: Int, i2: Int) = i1 + i2
def unit = 0
}
implicit object StringMonoid extends Monoid[String] {
def times(s1: String, s2: String) = s1 + s2
def unit = ""
}
implicit object PairOfMonoids extends Monoid[Pair[Monoid, Monoid]] = ???
}
}
我想我的问题是 Monoid[Pair[Monoid, Monoid]] 类型,因为我并没有真正处理两个幺半群实例,只有两个类是隐式幺半群,但我不确定如何表达。
任何帮助或参考将不胜感激
【问题讨论】: