internal MFist(Fist src, Funf fun) { switch (src) { case (var head, Nilf _): this.Head = new Lazy <dynamic>(() => { var h = call(fun, head); return(h); }); this.Tail = new Lazy <Fist>(() => nilf); break; case var _: this.Head = new Lazy <dynamic>(() => { var h = call(fun, src.head); return(h); }); this.Tail = new Lazy <Fist>(() => new MFist(src.tail, fun)); break; } }
public static Fist create(Fist source, Funf predicate) => drop_until(source, predicate) switch {