Один из способов - получить все игры от вектора.
может быть что-то вроде:
(defn game-keys [from]
(set (map (fn [x] (:game x)) from)))
Теперь у нас есть все уникальные игры, хранящиеся где-то, теперь для каждой из тех, которые мы хотим получить наибольшее значение для старта. Сортировка может быть полезна, если мы отфильтруем нужные игры.
(defn games [key from]
(filter (fn [x] (= (:game x) key)) from))
Итак, мы можем получить игры, которые нам нужны, теперь нам просто нужны самые высокие из них
(defn max-start [lst]
(first (sort (fn [x y] (> (:start x) (:start y))) lst)))
Итак, теперь мы можем сделать:
(map (fn [x] (max-start (games x game-vec))) (game-keys game-vec))
Тем не менее, это всего лишь один из способов, возможно, существуют более эффективные способы в зависимости от определения лучшего.