阅读Functional Programming in Scala,我看到了下面的类型别名:类型别名斯卡拉
type Const[M, B] = M
implicit def monoidApplicative[M](M: Monoid[M]) =
new Applicative[({ type f[x] = Const[M, x] })#f] {
def unit[A](a: => A): M = M.zero
def map2[A,B,C](m1: M, m2: M)(f: (A,B) => C): M = M.op(m1,m2)
}
什么是Const[M, x]
这里作为一个类型别名的含义是什么?我的理解是,对于新创建的Applicative
,它有一个[M, B]
类型,其中B
在功能级别指定。
可能的重复[什么是在斯卡拉类型lambdas和它们的好处是什么?](http://stackoverflow.com/questions/8736164/what-are-type-lambdas-in-scala-and-what-are - 他们的好处) –
@KevinWright,啊,所以我关于'type aliases'的问题实际上是一个关于'type lamdbas'的问题...... –
用这种方式,是的,那个特定的别名只是lambda类型的一部分。 –