static A lowest(Map map) { A best = null; Number bestScore = null; for (A key : keys(map)) { Number score = map.get(key); if (best == null || cmp(score, bestScore) < 0) { best = key; bestScore = score; } } ret best; } static A lowest(Iterable l, IF1 f) { ret lowestByScoreFunction(l, f); }