我正在使用Piccolo2D构建图形编辑器,并希望实现Loom的Graph
协议。但是我遇到了问题
Unable to resolve symbol: out-edges in this context
真正令人困惑的是我可以在successors
中使用has-edge
。
(extend-type PCanvas
Graph
(nodes [g]
(->children (->node-layer g)))
(edges [g]
(->children (->edge-layer g)))
(has-node? [g node]
(some #{node} (nodes g)))
(has-edge? [g n1 n2]
(some #{n2} (successors g n1)))
(successors
([g] (partial successors g))
([g node]
(remove (partial = node)
(distinct (flatten (apply concat
(map ->nodes (out-edges g node))))))))
(out-degree [g node]
(count (out-edges g node)))
(out-edges [g node]
(->edges node)))
那么协议方法在什么条件下可以调用其他方法?
修改:完整的错误消息:http://pastebin.com/NDWEZZ7y
答案 0 :(得分:2)
我发布了Loom版本0.5.0,其中包括多图支持。
答案 1 :(得分:1)
当前版本中没有这样的方法,0.4.2,这是4个月大,见https://github.com/aysylu/loom/blob/0.4.2/src/loom/graph.clj#L13。您可能正在查看GitHub中的主分支changes made 23 days ago,尚未发布。