Как узнать все ключи в наборе карт? - PullRequest
3 голосов
/ 04 апреля 2011

Если у меня есть такой набор карт

(def a #{
          {:a 1 :b 2}
          {:a 3 :b 4}
          {:b 1 :c 2}
          {:d 1 :e 2}
          {:d 1 :y 2}
})

: как я могу узнать все ключи?при этом:

(find-all-keys a)

: возвращает:

(:a :b :c :d :e :y)

?

Ответы [ 4 ]

11 голосов
/ 04 апреля 2011

Другой способ:

(distinct (mapcat keys a))
4 голосов
/ 04 апреля 2011

Почти так же:

(set (mapcat keys a))
0 голосов
/ 04 апреля 2011

Другой способ:

(reduce #(into %1 (keys %2))  #{}  a)
0 голосов
/ 04 апреля 2011

Что-то вроде:

user=> (into #{} (flatten (map keys a)))
#{:y :a :c :b :d :e}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...