luo*_*990 4 monads concurrency haskell promise
我在读包的文档异步,并试图找到类似于JavaScript的承诺的东西,我觉得Concurrently,这是最贴近的概念,实现Functor,Applicative(Promise.all),Alternative(Promise.race)。但是它没有实现Monad(Promise.then),我想知道为什么。
我认为这可能是因为(>>=)是顺序操作,与名称冲突Concurrently,但这是唯一的原因吗?这里还有更重要的原因吗?
该Monad类型类的规定,(<*>)并且ap应该是等价的。(<*>)用于同时Concurrently评估LHS和RHS。在完成LHS之前,ap无法评估RHS,因为(>>=)需要先完成对LHS的评估,然后才能调用赋予其RHS的函数。
| 归档时间: |
|
| 查看次数: |
155 次 |
| 最近记录: |