Iterable expand(Iterable f(E element))

Expands each element of this Iterable into zero or more elements.

The resulting Iterable runs through the elements returned by f for each element of this, in iteration order.

The returned Iterable is lazy, and calls f for each element of this every time it's iterated.


Iterable/*<T>*/ expand/*<T>*/(Iterable/*<T>*/ f(E element)) =>
    new ExpandIterable<E, dynamic/*=T*/>(this, f);