Tag: monads

在JavaScript中实现monad

现在, node.js支持ECMAScript Harmony生成器,我们可以在Haskell中简洁地写出monadic代码: function monad(unit, bind) { return function (f) { return function () { var g = f.apply(this, arguments); return typeOf(g) === "Generator" ? send() : unit(g); function send(value) { var result = g.next(value); if (result.done) return unit(result.value); else return bind(result.value, send); } }; }; } function typeOf(value) { return Object.prototype.toString.call(value).slice(8, -1); } 在上面的代码中, […]