List<E> filter(bool f(E e)) { var result = <E>[]; for (var value in this) { if (f(value)) result.add(value); } return result; }