【发布时间】:2021-03-17 21:54:06
【问题描述】:
我想大多数purely functional programming languages 都具有控制功能副作用的功能,例如 Haskell 中的 monad,但由于 TEA,Elm 不需要此类功能。此外,我听说 Nim 是一种不纯粹的函数式编程语言,但它通过有/无副作用将 func 和 proc 分开。
那么,我有一个问题。是否有任何按可以或不能控制功能副作用分类的编程语言列表?如果没有,你能给我一些语言的名字吗?我将搜索名称并研究它是如何工作的,但如果可能的话,我很高兴你能简单地写它。以下是我知道的可以控制副作用及其方式的语言列表:
- 由单子
- 哈斯克尔
- PureScript
- 伊德里斯
- (查找了一些类似的语言,我想应该包括Agda和Isabelle)
- 通过代数效应(我不太理解)
- 甲贺
- 效果
- 按类型
- 干净
- 按语法
- 尼姆 -
proc和func
- 尼姆 -
另外,如果你知道,请告诉我有关控制函数副作用的文档。
【问题讨论】:
-
StackOverflow 平台不太适合要求列表的问题。
-
顺便说一句,为了消除一些混乱,Haskell doesn't need monads to achieve IO。大多数代数效应也是单子的。我建议你多研究一下这些,以及 Haskell 创造者关于 IO 的论文。
-
文章是否包含论文链接?无论如何,我会仔细阅读它,谢谢!
-
Elm 不会“避免”单子。它在任何地方都使用它们,只是没有提及它们的名称,并且对它们的语言支持很糟糕
标签: functional-programming side-effects purely-functional