こいつ LT ばっかりやってんな.
Kyoto.js 11 というイベントで JavaScript のジェネレータについて LT をしました. JS 界隈の色々な話が聞けてよかった(小学生並みの感想).
補足説明など
スライド中では .next()
メソッドをいかにも単なる関数のように書き直していますが,
実際は呼び出す度に実体 (継続) が変わってしまい, 保持しておいて何回も呼び出すということができません
(モナドなら何でも良いわけではないというのはこのことによるものです).
また, 発表後に参加者の方から, ストリームから流れてくるデータを加工する場合にも使えるということを教えていただきました. その他有効活用事例がありましたら是非お教えください.
リンク
スライド中で紹介したライブラリなど.
- Koa: Koa - next generation web framework for node.js
- co: GitHub - tj/co: The ultimate generator based flow-control goodness for nodejs (supports thunks, promises, etc)
自作のパーサコンビネータはこちら (まだ色々散らかっているのでぼちぼちまとめます).
- 古いの (遅い) : GitHub - susisu/Loquat: JavaScript monadic parser combinators
- 新しいの (開発中): GitHub - susisu/loquat-core: core classes & utility functions
- ジェネレータでごにょごにょする部分: GitHub - susisu/loquat-qo: like do or co
今回話した内容は以下の記事の内容の一部をまとめたり説明を改善したりなどしたものです. 他のモナドへの適用例もこちらには書いてあります.
余談
一部では禁忌と噂の「ご清聴ありがとうございました」系スライドを入れましたが, これならまあ許してもらえると信じています.