static F1 boolGuesserByWordAtIndex(Map examples, final int wordIndex) { Map map = mapKeys(examples, func(S s) { getWord(s, wordIndex) }, keys(examples)); int diff = countValues(map, true)-countValues(map, false); print("diff=" + diff); final bool defaultValue = diff > 0; final Set exceptions = new TreeSet(keysWithValue(map, !defaultValue)); ret func(S s) -> Bool { defaultValue ^ contains(exceptions, getWord(s, wordIndex)) }; }