編集可能

PHPで動くLINQもどきの開発に関するディスカッション

https://github.com/akanehara/ginq の開発に関係しそうなツイートをまとめました。終わらないので随時更新(予定)。
6
Masao Maeda @brtriver

Doctrine の ArrayCollection が便利。$items->filter(function($item){…}); みたいにmapやfilterを書けるようになってる

2013-01-31 10:20:32
Ktz @ktz_alias

@brtriver Doctorineと切り離されてるとうれしいんだけどなぁ (チラッ

2013-01-31 11:15:14
Ktz @ktz_alias

@brtriver いつも引数に悩まされるarray系関数をラップして使いやすくしてるのは好印象。でもmapとかfilterとかは、遅延実行してほしいんだよなぁ (チラッ

2013-01-31 13:20:39
Ktz @ktz_alias

@brtriver 昨日作ってほとんどテストしてない、遅延実行型のIteratorはまだまだ使い道がありそうだ。(map, filterは遅延実行、reduceは即時実行。まだこれだけ)

2013-01-31 13:22:44
ひさてるさん @tanakahisateru

@ktz_alias @brtriver Haskellに開眼してきたPythonな元同僚が、Ginqという名前でGeneratorを意識したPHPのLINQっぽいものを作っております。

2013-01-31 13:29:52
Ktz @ktz_alias

@tanakahisateru @brtriver 見つからねー。どこだー。というか非公開なのかー?

2013-01-31 13:35:02
ひさてるさん @tanakahisateru

@ktz_alias @brtriver まだプロト実装しかない感じだったから非公開なのかな。梅田に来たら実物見れます。

2013-01-31 13:38:28
ひさてるさん @tanakahisateru

@ktz_alias @brtriver まちがいない。ソースはまだローカルの開発ブランチ内だ。

2013-01-31 13:40:16
ひさてるさん @tanakahisateru

@akanehara うっす。GinqのdevelブランチGitHubに上げようずら。

2013-01-31 13:48:12
第297654658185列 @akanehara

@tanakahisateru 例のメモ化と巻き戻しの件はいったん Ginq から切り離すことに決めたんだけど、述語やセレクタの仕様でうんうん唸ってるとこ

2013-01-31 13:48:47
第297654658185列 @akanehara

@tanakahisateru そやね、develブランチでいったん上げちゃうか。

2013-01-31 13:49:29
ひさてるさん @tanakahisateru

@akanehara masterになければOKじゃないかな。本人がいる時じゃないとソース見れないのは不便で。

2013-01-31 13:52:16
Ktz @ktz_alias

phpの配列操作はホント嫌になるわー

2013-01-31 15:22:03
第297654658185列 @akanehara

う〜ん、php の const や static フィールドに関数入れられないのか

2013-01-31 17:50:44
Ktz @ktz_alias

@tanakahisateru Ginqうpされてた(・∀・)そして予想どおり、yield使ってた。今回は5.4なので、おみおくりー。

2013-02-01 14:14:27
ひさてるさん @tanakahisateru

@ktz_alias とりあえずプロトタイプはyieldで作ってインターフェースかためて、あとでジェネレーターのインスタンスをis-aで綺麗に巻き戻し禁止イテレータに置換しようぜって言ってた。

2013-02-01 14:18:16
第297654658185列 @akanehara

Ginqの内部実装を2種類もつことにした。Iterator版があればGenerator版は要らななさそうだけど、Generator版のコードの見通しのよさと性能への期待は捨てたくない。

2013-02-01 18:16:55
第297654658185列 @akanehara

@tanakahisateru この土日でIterator実装やりきっちゃうぜ!(言い切って自分を追い込む)

2013-02-01 19:54:03
ひさてるさん @tanakahisateru

@akanehara: @tanakahisateru この土日でIterator実装やりきっちゃうぜ!(言い切って自分を追い込む)” Fw: @ktz_alias

2013-02-01 20:32:06
第297654658185列 @akanehara

selectMany とか join の出番は少なくても、無限シーケンスとzipの組み合わせは一覧表表示なんかでふつうに便利よね。奇数行偶数行とか曜日とか。

2013-02-01 22:04:57
第297654658185列 @akanehara

php で Iterator と IteratorAggreagte を取り違えてハマって、Python の iter() 関数の賢さを思い知ったところ

2013-02-02 00:04:46
第297654658185列 @akanehara

50行の SelectManyIterator が Generator 使うと4行だもんなー

2013-02-02 13:52:34
残りを読む(331)

コメント