У меня есть такая карта:
{:a 1 :b 20}
: и я хочу убедиться, что некоторые поля не пропущены на карте:
(:a :b :c :d )
: есть ли функцияобъединить два, что-то вроде:
(merge-missing-keys {:a 1 :b 20} (:a :b :c :d ))
: который может производить:
{:a 1 :b 20 :c nil :d nil}
?
Обновление:
С некоторыми указателями изответы, которые я нашел, что это можно сделать так:
(defn merge-missing-keys [
a-set
some-keys
]
(merge-with
#(or %1 %2)
a-set
(into {} (map (fn[x] {x nil}) some-keys))))
(merge-missing-keys {:a 1 :b 20} '(:a :b :c :d :e ))