Я только начинаю изучать clojure, но я думаю, что этот способ может быть немного более идиоматическим.В любом случае это альтернатива.
(defn filter
"This function returns a map with the user as key, #followers as value"
[raw-tweets]
(into {} (map #(let [user (:user %)]
[(:name user) (:followers_count user)])
raw-tweets)))
Он сопоставляет необработанные твиты с функцией, которая извлекает пользователя для каждого твита и возвращает вектор с именем и количеством подписчиков для этого пользователя.Функция into принимает две последовательности и соединяет каждый элемент второго с первым, что превращает список векторов в карту, прежде чем он будет возвращен из функции фильтра.