ardggy's blog

Esc - Meta - Alt - Ctrl - Shift

2021-02-01から1ヶ月間の記事一覧

複数のイテレータを合流させる(承前)

php

前は2つのイテレータを合流させるパターンを書いたが、3つ以上のイテレータも混ぜられないだろうか。 confluence(confluence($it1, $it2, $compare), $it3, $compare) とやれば複数混ぜられそうな気がする。 つまり畳み込みの計算で、array_reduce をつかえ…

イテレータを合流させる

php

ソート済みの2つのイテレータを混ぜ合わせて直列にできないだろうか、という動機 $x <=> $y); assert([0,1,2,3,4,5,6,7,8,9] === iterator_to_array(new LimitIterator($iter, 0, 10), $use_keys = false)); function confluence(Iterator $it1, Iterator $…

ジェネレータとSQL

SQL の結果をなめたいがメモリにぜんぶ展開すると out of memory になりがちなところ、 チャンクを次々とジェネレータで供給するというパターンを思いついた。これならほぼ定数メモリで大量のデータを処理できる。 ジェネレータは Iterator を実装しているの…