@Override public IndexedSeq<Tuple2<Character, Integer>> zipWithIndex() { return zipWithIndex(Tuple::of); }
static IndexedSeq<CharSeq> apply(CharSeq elements, int k) { if (k == 0) { return Vector.of(CharSeq.empty()); } else { return elements.zipWithIndex().flatMap( t -> apply(elements.drop(t._2 + 1), (k - 1)).map((CharSeq c) -> c.prepend(t._1)) ); } } }
@Override public IndexedSeq<Tuple2<Character, Integer>> zipWithIndex() { return zipWithIndex(Tuple::of); }
static IndexedSeq<CharSeq> apply(CharSeq elements, int k) { if (k == 0) { return Vector.of(CharSeq.empty()); } else { return elements.zipWithIndex().flatMap( t -> apply(elements.drop(t._2 + 1), (k - 1)).map((CharSeq c) -> c.prepend(t._1)) ); } } }