LListBase<A>
abstract class
abstract class LListBase<A> implements LList<A> {
void foreach(f(A)) {
LList<A> it = this;
while (!it.isNil()) {
Cons<A> cons = it.asCons();
f(cons.elem);
it = cons.tail;
}
}
LList map(f(A)) {
LListBuilder<A> builder = new LListBuilder<A>();
LList<A> it = this;
while (!it.isNil()) {
Cons<A> cons = it.asCons();
A elem = cons.elem;
builder.add(f(elem));
it = cons.tail;
}
return builder.build();
}
LList<A> filter(bool f(A)) {
LListBuilder<A> builder = new LListBuilder<A>();
LList<A> it = this;
while (!it.isNil()) {
Cons<A> cons = it.asCons();
A elem = cons.elem;
if (f(elem)) builder.add(elem);
it = cons.tail;
}
return builder.build();
}
}
Subclasses
Cons<A>, Nil<A>
Implements
LList<A>
Methods
LList<A> filter(bool f(A)) #
LList<A> filter(bool f(A)) {
LListBuilder<A> builder = new LListBuilder<A>();
LList<A> it = this;
while (!it.isNil()) {
Cons<A> cons = it.asCons();
A elem = cons.elem;
if (f(elem)) builder.add(elem);
it = cons.tail;
}
return builder.build();
}
void foreach(f(A)) #
void foreach(f(A)) {
LList<A> it = this;
while (!it.isNil()) {
Cons<A> cons = it.asCons();
f(cons.elem);
it = cons.tail;
}
}
LList map(f(A)) #
LList map(f(A)) {
LListBuilder<A> builder = new LListBuilder<A>();
LList<A> it = this;
while (!it.isNil()) {
Cons<A> cons = it.asCons();
A elem = cons.elem;
builder.add(f(elem));
it = cons.tail;
}
return builder.build();
}