private static NonEmptyList <T> ConstructRecursively(IEnumerator <T> enumerator) { var current = enumerator.Current; if (enumerator.MoveNext()) { return(NonEmptyList <T> .ConsNEL(current, ConstructRecursively(enumerator))); } else { return(NonEmptyList <T> .Singleton(current)); } }
public override NonEmptyList <TReturn> FMap <TReturn>(Func <T, TReturn> f) { return(NonEmptyList <TReturn> .ConsNEL(f(this.head), this.tail.FMap(f))); }