Id
文件说明
The identity monad ... is ambient in the sense that plain pure values are values of
Id
.
什么是环境?环境一词与纯值的含义有何关系?为什么我们可以说
Id
的纯值, 当 Id
是类型构造函数吗?再说一次,是Id
实际上是类型构造函数或正确类型,因为 :kind
命令没有输出scala> type Id[A] = A
type Id
scala> :kind -v Id
scala>
最佳答案
ambient
不是与 FP 或类型系统相关的术语,而是隐喻。
说 ambient
它们可能意味着它正在包装现有类型而实际上并没有对其产生太大影响。
val i:Id[Int] = 3
val i2:Int = i // Id[Int]==Int
说 plain pure values are values of Id
它们意味着任何类型的值 X
也是 Id[X]
的值.val i:Id[Int] = 3:Int
val s:Id[String] = "3":String
你可以想到type Id[A] = A
作为“类型级别的函数”返回其参数 A
.像这样,但在类型级别:
def Id[T](i:T):T = i
没有“类型级别的函数”这样的术语,但是每个类型构造函数都类似于类型系统级别的函数。
关于scala - 环境 monad 中术语环境的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62485684/