gpt4 book ai didi

haskell - 为什么 `Concurrently` 不是 Haskell 中的单子(monad)?

转载 作者:行者123 更新时间:2023-12-05 00:45:44 25 4
gpt4 key购买 nike

我正在阅读包的文档 async ,并试图找到类似于 JavaScript 的 Promise 的东西,我找到了 Concurrently ,这是实现的最接近的概念Functor , Applicative (Promise.all), Alternative (Promise.race)。但它没有实现 Monad (Promise.then),我想知道为什么。

我想可能是因为(>>=)是顺序操作,与名称 Concurrently 冲突,但这是唯一的原因吗?这里有更重要的原因吗?

最佳答案

The Monad typeclass声明 (<*>)ap应该是等价的。 (<*>)对于 Concurrently同时评估 LHS 和 RHS。 ap在 LHS 完成之前无法评估 RHS,因为 (>>=)需要完成对 LHS 的评估,然后才能调用为其提供 RHS 的函数。

关于haskell - 为什么 `Concurrently` 不是 Haskell 中的单子(monad)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56032669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com