update page now

Voting

: max(nine, four)?
(Example: nine)

The Note You're Voting On

frode at ennerd dot com
7 years ago
In many cases, especially for streaming sources, Generators are way more efficient. I noticed that the AppendIterator buffers the entire "inner iterator".

<?php
/**
 * This appends $next iterator to $iterator.
 */
function append_iterators(...$iterators){
    foreach($iterators as $iterator)
        foreach($iterator as $row)
            yield($row);
}

/**
 * Merge iterator takes one first from each iterator until
 * every iterator is empty.
 */
function merge_iterators(....$its) {
    $numberOfIts = sizeof($its);
    while($numberOfIts > 0) {
        $iterator = array_shift($its);
        yield($iterator->current());
        $iterator->next();
        if($iterator->valid())
            $its[] = $iterator;
        else
            $numberOfIts--;
    }
});
?>

<< Back to user notes page

To Top