Iterable expand(
Iterable f(E element)

Expands each element of this Iterableinto 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 expand(Iterable f(E element)) =>
    new ExpandIterable<E, dynamic>(this, f);