scala - 环境 monad 中术语环境的含义

标签 scala functional-programming terminology

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/

相关文章:

terminology - 在编程环境中,什么是 'value'?

c - 'c' 是 Ruby 中的一个字符还是一个字符串 - 或者两者兼而有之?

scala - 戏剧中的 Specs2 测试给了我“找不到 org.specs2.main.CommandLineAsResult 类型的证据参数的隐式值

scala - 将 List[Task(username, description)] 转换为 Map[username,Set[Task]]

java - 我如何获得对象数组 :java8 的值的总和

java - 为什么 Scala 中没有可变的排序映射

Scala - 定义范围内数字的类型

scala - Akka-Http DSL 发生了什么?

functional-programming - 自动机理论和函数式编程

language-agnostic - "double recursion"的术语是什么?