我在这里看看Clojure中的trie实现:
http://merrigrove.blogspot.co.uk/2010/07/clojure-implementation-of-dictionary.html
我正在努力使用query-node-with-path函数。我怎么称它为一个词干的所有子词呢?
我确信这个秘密在函数调用中带有参数
[ [ s & _ :as source ]
{type :type children :children wf :word-fragment :as node}
acc]
但我无法理解。
答案 0 :(得分:4)
查看其余代码,我认为query-node
是您想要的函数,它调用query-node-with-path
,并且只返回您想要的部分。它的两个args扩展为source
和node
(它的定义很差,除非你查看它调用的函数,否则你不知道它的args是什么)。
实际向query-node-with-path
这是一个destructured参数列表,描述了三个参数:
source
,这是一个序列,第一个元素绑定到s
node
,这是一个哈希地图,键type
,children
和word-fragment
绑定到type
,children
和wf
acc
(在惯用语中表示累加器参数)很明显,acc
被添加到函数重复中,并且它是一个可选参数,因为该函数有另一个arity,它创建acc
为[]
并调用完整arity版本。
(顺便说一下,那里的代码格式非常不一致,并且比它应该更难阅读)