Dam*_*les 9 scala scalaz type-parameter
我试图理解下面的一段代码(来自Scalaz库):
def kleisliIdApplicative[R]: Applicative[Kleisli[Id, R, ?]] = ...
Run Code Online (Sandbox Code Playgroud)
我假设表单T[P0, ?]的类型是一个带参数的类型构造函数.但是,我无法找到解释类型参数中问号用法的文档.
一个相关的问题是问号和下划线之间有什么区别?
是否存在所有这些都有详细记录的地方?
Gab*_*lla 14
问号语法来自名为kind-projector的编译器插件.
您可以在此处看到它包含在scalaz构建中:https://github.com/scalaz/scalaz/blob/series/7.3.x/project/build.scala#L310
插件翻译
Kleisli[Id, R, ?]
Run Code Online (Sandbox Code Playgroud)
进(大致)
({type L[A] = Kleisli[Id, R, A]})#L
Run Code Online (Sandbox Code Playgroud)
这是一种相当复杂的方式(但不幸的是Scala中唯一的方法)表达类型lambda,即部分应用的类型构造函数.
| 归档时间: |
|
| 查看次数: |
2165 次 |
| 最近记录: |