package xapi.fu; import java.util.Iterator; /** * @author James X. Nelson (james@wetheinter.net) * Created on 4/19/16. */ public interface MappableIterable <T> extends Iterable <T> { static <T> MappableIterable <T> mappable(Iterable<T> itr) { return itr::iterator; } default <F> Iterable<F> map(In1Out1<T, F> mapper) { return ()->{ final Iterator<T> itr = iterator(); return new MappableIterator<>(itr, mapper); }; } }