Returns the number of elements satisfying predicate.
predicate
int count(bool Function(T) predicate) => fold(0, (acc, e) => predicate(e) ? acc + 1 : acc);