functional-programming - purescript 中的 Eff-monad 是否受到 www.eff-lang.org 的启发?

标签 functional-programming purescript

阅读 Eff-Language 时,我想知道是否有类似的想法已经在使用。 Eff-Language 提到了一篇名为“Inferring Algebraic Effects”的论文,它描述了 Eff 用来推断效果的算法。有相似之处吗?

最佳答案

当我在 PureScript 中编写效果系统时,我就知道 Eff,所以你可能会说它受到了它的启发。另一个灵感来源是 Koka 编程语言,特别是论文“Koka: Programming with Row Polymorphic Effect Types”。鉴于 PureScript 已经有用于处理记录的行类型,尝试将其重新用作效果系统是有意义的。

PureScript 使用了一个名为 Eff 的效果单子(monad)。 (没有关系!)处理“ native ”效果(即由运行时系统提供的效果,而不是像您可能在 Haskell 中使用 monad 转换器建模的“用户空间”效果)。 Eff很像 Haskell 的 IO ,而是由一排效果类型精炼而成。所以 PureScript 中基于行的效果的路径非常简单——我们只需要允许行包含类型不同于 * 的类型。 .

关于functional-programming - purescript 中的 Eff-monad 是否受到 www.eff-lang.org 的启发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29994346/

相关文章:

purescript - 如何在纯脚本中捕获子进程的输出?

javascript - 编写 ES6 模块并转换为 CommonJS 时,实际上没有导出指定的导出

java - 使用流和 lambda 在 Java 8 中使用 if-else 条件

functional-programming - 写三个Scheme程序模拟这三个门: AND, OR和XOR

haskell - 使用 do 符号分配列表/元组

purescript - PureScript Halogen 中的滚动操作

haskell - Haskell 中的类型冒险 : GADT's: why does the following typechecks?

javascript - 我可以使用 setTimeout 创建一个廉价的无限循环吗?

node.js - 无法启动 psc-ide-server 进程。检查配置的端口号是否有效。 psc-ide-server 错误