いまいち使いどころが見つからないけどPHPでlazy map書いてみた。 通常のmap(PHPだとarray_map)は、与えられたリストのすべてに関数を適用したリストを返すが、lazy mapでは実際にイテレータから値を取り出す時に初めて関数を適用する。 <?php class LazyMap implements Iterator { protected $iterator, $callback; function __construct($seq, $callback) { if (is_array($seq)) $this->iterator = new ArrayIterator($seq); elseif ($seq instanceof Iterator) $this->iterator = $seq; elseif ($seq instanceof IteratorAggr