sS lambdaMapLike filterChars(IPred pred, S s) { if (empty(s)) null; int n = l(s); c = s.charAt(0); bool totality = pred.get(c); int i = 1; for (; i < n; i++) { char c = s.charAt(i); bool b = pred.get(c); if (b != totality) { // diverse case new StringBuilder buf; if (totality) buf.append(substring(s, 0, i)); while ping (true) { if (b) buf.append(c); if (++i >= n) break; c = s.charAt(i); b = pred.get(c); } ret buf.toString(); } } ret totality ? s : ""; }