ambient monad 中术语 ambient 的含义

The sense of term ambient in ambient monad

Id 文档说明

The identity monad ... is ambient in the sense that plain pure values are values of Id.

什么是环境? 环境 一词与纯值 的含义有什么关系?当 Id 是类型构造函数时,为什么我们可以说 of 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 视为“类型级别的函数”,returns 其参数 A

类似这样,但在类型级别:

def Id[T](i:T):T = i

没有“类型级别的函数”这样的术语,但每个类型构造函数都是类型系统级别的函数的模拟。