PHPで動くLINQもどきの開発に関するディスカッション
- tanakahisateru
- 13747
- 0
- 18
- 7
Doctrine の ArrayCollection が便利。$items->filter(function($item){…}); みたいにmapやfilterを書けるようになってる
2013-01-31 10:20:32@brtriver いつも引数に悩まされるarray系関数をラップして使いやすくしてるのは好印象。でもmapとかfilterとかは、遅延実行してほしいんだよなぁ (チラッ
2013-01-31 13:20:39@brtriver 昨日作ってほとんどテストしてない、遅延実行型のIteratorはまだまだ使い道がありそうだ。(map, filterは遅延実行、reduceは即時実行。まだこれだけ)
2013-01-31 13:22:44@ktz_alias @brtriver Haskellに開眼してきたPythonな元同僚が、Ginqという名前でGeneratorを意識したPHPのLINQっぽいものを作っております。
2013-01-31 13:29:52@ktz_alias @brtriver まだプロト実装しかない感じだったから非公開なのかな。梅田に来たら実物見れます。
2013-01-31 13:38:28@tanakahisateru 例のメモ化と巻き戻しの件はいったん Ginq から切り離すことに決めたんだけど、述語やセレクタの仕様でうんうん唸ってるとこ
2013-01-31 13:48:47@tanakahisateru Ginqうpされてた(・∀・)そして予想どおり、yield使ってた。今回は5.4なので、おみおくりー。
2013-02-01 14:14:27@ktz_alias とりあえずプロトタイプはyieldで作ってインターフェースかためて、あとでジェネレーターのインスタンスをis-aで綺麗に巻き戻し禁止イテレータに置換しようぜって言ってた。
2013-02-01 14:18:16Ginqの内部実装を2種類もつことにした。Iterator版があればGenerator版は要らななさそうだけど、Generator版のコードの見通しのよさと性能への期待は捨てたくない。
2013-02-01 18:16:55@tanakahisateru この土日でIterator実装やりきっちゃうぜ!(言い切って自分を追い込む)
2013-02-01 19:54:03“@akanehara: @tanakahisateru この土日でIterator実装やりきっちゃうぜ!(言い切って自分を追い込む)” Fw: @ktz_alias
2013-02-01 20:32:06selectMany とか join の出番は少なくても、無限シーケンスとzipの組み合わせは一覧表表示なんかでふつうに便利よね。奇数行偶数行とか曜日とか。
2013-02-01 22:04:57php で Iterator と IteratorAggreagte を取り違えてハマって、Python の iter() 関数の賢さを思い知ったところ
2013-02-02 00:04:46