JavaScript中生成器函数和monad之间的连接是什么?

haw*_*eye 7 javascript monads generator

一位软件开发爱好者注意到以下内容:

当前状态:在生成器函数和monad理解之间进行直观连接后,强制重写我的所有JS.

我觉得我错过了那里的东西.我回调地狱的解决方案是使用类似的东西js-csp(即队列).

我的问题是:JavaScript中生成器函数和monad之间的连接什么?

Ber*_*rgi 5

空无一人.

虽然生成器函数可能看起来非常类似于monad理解(即do符号),但它们并不是通用的.主要问题是ES6生成器是有状态的,并且每次继续只能前进一次.尝试使用它们实现列表monad并看到它失败.

真正的单子推导可以使用支持它们编译到JS语言来实现(如LatteJs,一元,PureScriptLispyScript),或sweet.js宏.他们通常不喜欢回调 - 就像在Haskell中一样.