Dart DocumentationpersistentLListBuilder<A>

LListBuilder<A> class

class LListBuilder<A> {
 LList<A> _first = null;
 Cons<A> _last = null;

 void add(A x) {
   Cons<A> cons = new Cons<A>(x, null);
   if (_first == null) {
     _first = cons;
   } else {
     _last.tail = cons;
   }
   _last = cons;
 }

 LList<A> build([tail = null]) {
   if (tail == null)
     tail = new Nil<A>();
   if (_first == null) {
     return tail;
   } else {
     _last.tail = tail;
     return _first;
   }
 }
}

Methods

void add(A x) #

void add(A x) {
 Cons<A> cons = new Cons<A>(x, null);
 if (_first == null) {
   _first = cons;
 } else {
   _last.tail = cons;
 }
 _last = cons;
}

LList<A> build([tail = null]) #

LList<A> build([tail = null]) {
 if (tail == null)
   tail = new Nil<A>();
 if (_first == null) {
   return tail;
 } else {
   _last.tail = tail;
   return _first;
 }
}