如何调用一些Clojure代码?

时间:2014-02-03 14:04:02

标签: clojure

我在这里看看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]

但我无法理解。

1 个答案:

答案 0 :(得分:4)

查看其余代码,我认为query-node是您想要的函数,它调用query-node-with-path,并且只返回您想要的部分。它的两个args扩展为sourcenode(它的定义很差,除非你查看它调用的函数,否则你不知道它的args是什么)。

实际向query-node-with-path

解释args

这是一个destructured参数列表,描述了三个参数:

  • source,这是一个序列,第一个元素绑定到s
  • node,这是一个哈希地图,键typechildrenword-fragment绑定到typechildrenwf
  • acc(在惯用语中表示累加器参数)

很明显,acc被添加到函数重复中,并且它是一个可选参数,因为该函数有另一个arity,它创建acc[]并调用完整arity版本。

(顺便说一下,那里的代码格式非常不一致,并且比它应该更难阅读)