Dart DocumentationpersistentLListBase<A>

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

abstract Cons<A> asCons() #

inherited from LList

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;
 }
}

abstract bool isNil() #

inherited from LList

abstract int length() #

inherited from LList

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();
}