我一直在检查Atlassian Typeclassopedia是否有Scala(使用Scalaz的示例),我不理解函数monad定义(我从未见过类型参数的这种语法):< / p>
implicit def FunctionMonad[R] = new Monad[({type l[a] = R=>a})#l] {
def >>=[A, B](fa: R => A)(f: A => R => B) : R => B = (x => f(fa(x))(x))
...
}
有人可以详细说明{type l[a] = R=>a})#l
实际上做了什么吗?