Если вы «перебираете» карту, вы получите пары ключ-значение, а не ключи.Например,
user=> (map #(str %) {:a 1, :b 2, :c 3})
("[:a 1]" "[:b 2]" "[:c 3]")
Таким образом, ваша анонимная функция пытается оценить (some [:a "x"] [:a :b])
, что явно не работает.
Идеологическим решением является использование select-keys
, как указано в другом ответе.