我编写以下函数将s2合并到s1中,并且任何"id"值与s1中的任何元素相同的元素都不会合并.
(defn into-unique-id
[s1, [x2 & xs2]]
(if x2 (if (empty (filter (fn [x] (= (get x "id") (get x2 "id"))) s1)) (into-unique-id (conj s1 x2) xs2) (into-unique-id s1 xs2))
s1))
Run Code Online (Sandbox Code Playgroud)
我在REPL中尝试了以下内容.
gridizela.core=> (def s1 [{"id" "1"} {"id" "2"}])
#'gridizela.core/s1
gridizela.core=> (into-unique-id s1 [{"id" "1"}])
[{"id" "1"} {"id" "2"} {"id" "1"}]
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,结果并不像我预期的那样,不应该添加最后一个元素.
任何帮助,将不胜感激.
如注册字段描述中所示.例如:
[47:0] BADDR [47:x]转换表基址,位[47:x].位[x-1:0]为res0.