Предполагая, что вы собираетесь ключи и значения соответствуют ...
Есть ли собственный способ сделать это?
Нет стандартной функции. Я предлагаю ...
(defn map-subset? [a-map b-map]
(every? (fn [[k _ :as entry]] (= entry (find b-map k))) a-map))
Несколько примеров:
(map-subset? {:a 1 :b 2} {:a 1 :b 2 :c 3})
=> true
(map-subset? {:d 4} {:a 1 :b 2 :c 3})
=> false
(map-subset? {:a 3} {:a 1 :b 2 :c 3})
=> false
(map-subset? {:a nil} {})
=> false
- Он проходит свой первый аргумент только один раз.
- Он правильно обрабатывает значения
nil
.
Если ни одно из них не важно, используйте более элегантную версию, например, kasterma's.
Какое определение отношения подмножества вы говорите? Подмножество на клавишах и одинаковые значения? – kasterma