环境 monad 中术语环境的含义

Mar*_*lic 8 functional-programming scala terminology

Id 文件说明

身份 monad ... 是环境的,因为纯纯值是 的值Id

什么是环境?环境一词与纯值的含义有何关系?为什么我们可以说纯值of Id,什么时候Id是类型构造函数?再说一次,Id实际上是类型构造函数或正确类型,因为:kind命令没有输出

scala> type Id[A] = A
type Id

scala> :kind -v Id


scala>
Run Code Online (Sandbox Code Playgroud)

Bog*_*nko 4

ambient不是与 FP 或类型系统相关的术语,而是隐喻。

ambient它们可能意味着它正在包装现有类型,但实际上并没有对其产生太多影响。

val i:Id[Int] = 3
val i2:Int = i       // Id[Int]==Int
Run Code Online (Sandbox Code Playgroud)

plain pure values are values of Id它们意味着任何类型的值X也是 的值Id[X]

val i:Id[Int] = 3:Int
val s:Id[String] = "3":String
Run Code Online (Sandbox Code Playgroud)

您可以将其视为type Id[A] = A返回其参数的“类型级别的函数” A

像这样,但在类型级别:

def Id[T](i:T):T = i
Run Code Online (Sandbox Code Playgroud)

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