package org.zwobble.couscous.util; import java.util.Iterator; import java.util.List; public class Tails { public static Iterable> tails(List list) { return () -> new Iterator>() { private int startIndex = 0; @Override public boolean hasNext() { return startIndex < list.size(); } @Override public List next() { return list.subList(startIndex++, list.size()); } }; } public static List tail(List list) { return list.subList(1, list.size()); } }