static A bestByScoreFunction(Iterable l, IF1 f) { new Best best; for (A a : unnull(l)) { Number score = callF(f, a); if (score != null) best.put(a, toDouble(score)); } ret best!; }