【发布时间】:2015-05-03 01:58:10
【问题描述】:
阅读 Eff-Language,我想知道是否有类似的想法已经在使用。 Eff-Language 提到了一篇名为“Inferring Algebraic Effects”的论文,它描述了 Eff 用来推断效果的算法。有相似之处吗?
【问题讨论】:
标签: functional-programming purescript
阅读 Eff-Language,我想知道是否有类似的想法已经在使用。 Eff-Language 提到了一篇名为“Inferring Algebraic Effects”的论文,它描述了 Eff 用来推断效果的算法。有相似之处吗?
【问题讨论】:
标签: functional-programming purescript
我在用 PureScript 编写效果系统时就知道 Eff,所以你可能会说它是受它启发的。另一个灵感来源是 Koka 编程语言,特别是论文“Koka: Programming with Row Polymorphic Effect Types”。鉴于 PureScript 已经有用于处理记录的行类型,尝试将其重新用作效果系统是有意义的。
PureScript 使用一个名为 Eff 的效果 monad(没有关系!)来处理“原生”效果(即由运行时系统提供的效果,而不是您可能在 Haskell 中使用 monad 转换器建模的“用户空间”效果)。 Eff 很像 Haskell 的 IO,但由一系列效果类型改进。所以 PureScript 中基于行的效果的路径非常简单——我们只需要允许行包含除 * 之外的其他类型。
【讨论】: