2

我想知道是否有任何新方法被认为是已经存在多年的 Haskell 的 Monad IO 的可行(更好)替代方案。

4

2 回答 2

2

主要的替代品是效果系统。有关示例,请参见http://www.cse.unsw.edu.au/~benl/papers/thesis/lippmeier-impure-world.pdf 。它们有很多,因此您的问题无法明智地回答。另请参阅什么是类型和效果系统?

于 2013-08-24T19:11:13.243 回答
1

monadic I/O 目前是纯语言中的“最先进”吗?

通过它自己?不——在单子接口后面抽象出 I/O 已经有近 30 年的历史了。

新的是对单子 I/O 的抽象,例如iteratees;Owen Stpehens 在他的概述Approaches to Functional I/O中提供了更多详细信息。他总结了目前的情况:

I/O 并不是一个特别活跃的研究领域,但仍在发现新方法 [...]

Ben Lynn也有类似的观察:

现在我们可以编写大部分纯代码,偶尔使用不纯的包装器,研究人员大多已经停止寻找更好的替代方案。

Conal Elliott对它的描述非常令人难忘:

随着一元命令式编程的发明和接受,Haskell 社区就像走进了一个鸦片窝,仍然躺在那里的迷雾中。

好吧,我可能有点夸张了。有些人正在康复中,有些人“没有吸气”。

正是对话的丑陋有助于推动 monadic 接口如此突出 - monadic I/O 是否曾经被认为丑陋到足以产生全新的替代品?

只有时间会给出答案...

于 2020-09-01T03:19:03.150 回答