【发布时间】:2015-04-27 14:29:22
【问题描述】:
我在 Clojure 中创建了以下数组映射。
{:node 7, :children [{:node 8, :children []} {:node 6, :children []} {:node 23, :children {}} {:node 43, :children []}]}
如何在其中添加元素, 运行以下代码
(def tree (assoc-in tree [:node] 12))
给我
{:node 12, :children [{:node 8, :children []} {:node 6, :children []} {:node 10, :children {}} {:node 13, :children []} {:node 28, :children []}]}`
并运行
(def tree (assoc-in tree [:node :children] 12))
给我以下错误信息。如何将元素添加到数组映射的子部分中
Exception in thread "main" java.lang.ClassCastException: java.lang.Long cannot be cast to clojure.lang.Associative,
【问题讨论】:
-
(def tree (asoc-in tree [{:node :children}] 12))
-
跑步给了我
{{:node :children} 12, :node 7, :children [{:node 8, :children {}} {:node 6, :children {}} {:node 23, :children {}} {:node 43, :children {}}]} -
您是否尝试更新节点 12 的子节点?
-
我实际上试图以
{:node 8, :children {}}的格式将一个新的孩子插入到 :node 7 的孩子中,但是我无法让它工作,所以我尝试只插入一个数字一直 -
生成的树是什么样的?