twitterにどうぞ。この広告は、90日以上更新していないブログに表示しています。2013-11-02モナドについて考えた記録Promiseってなんとなくモナドっぽいなと思って、ジェネレータ使ってHaskellのdoを再現できないかなあというのがはじまり。結論からいうと、できない。そもそもPromiseがモナドであるかを考える。Promise.resolveがこれにあたる。bbindとも呼ばれたりする。この関数に、値を受け取ってモナドを返す関数を渡すと、その値が結果になる。Promise.prototype.then;つまり、Promise#thenである。g)これらを満たしていればモナドであると言える。1であり、同一なので満たす。5となり、一致するので満たしている。よって、Promiseはモナドである。3この記法をモナド全般に拡張できないのか?というのが今回のテーマなのだが、結論から言うと、できない。正しそうに見えるが、実際は、モナド全般に一般化するとmbind(f)でfは複数回呼ばれる可能性があるので、動かない。[[1,3],[1,4],[2,3],[2,4]]このようなことができる。2に戻す部分が実装できない。doの見分け方と使い方についてなどArchiveはてなブログをはじめよう!javascripterさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。