閱讀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類型的一部分。 –