filter method

  1. @override
IList<A> filter(
  1. bool predicate(
    1. A a
    )
)
override

Implementation

@override IList<A> filter(bool predicate(A a)) {
  var rresult = nil<A>();
  var current = this;
  while(current._isCons()) {
    final currentHead = current._unsafeHead();
    if (predicate(currentHead)) {
      rresult = new Cons(currentHead, rresult);
    }
    current = current._unsafeTail();
  }
  return rresult.reverse();
}