1
我写了一个简单的功能Clojure中可以解析XML:Clojure的易复发的怪异行为
(defn filter-tags [xml & selectors]
(if (and (seq selectors) (seq xml))
(recur
(->>
xml
(filter #(= (first selectors) (:tag %)))
(map :content)
flatten)
(rest selectors))
xml))
(defn search-twitter [query]
(->
(clojure.xml/parse (str "http://search.twitter.com/search.atom?q=" query))
:content
(filter-tags :entry :title)))
(first (search-twitter "something")))
它运作良好,具有易复发......但它是奇怪,当我尝试做了“平原”递归,明确地调用过滤器标签,它不起作用... 有人可以解释这一点吗?
定义“不工作” - 没有输出或堆栈跟踪崩溃? – sw1nn 2012-04-03 08:48:37
它返回零,因为我记得(我使用Clojure 1.2) – Zsolt 2012-04-03 08:53:01