我是Clojure的新手,我堅持如何'擴展'一個函數的可選參數,以便它們可以發送到另一個使用可選參數的函數(但希望那些args作爲關鍵字而不是關鍵字的seq)。Clojure:通過'擴展'可選參數功能
我解析XML,如果我硬編碼值如下我的函數的工作原理,它走的XML和發現「標題」的價值:
; zd was required like this
[clojure.data.zip.xml :as zd]
; ...
(defn get-node-value [parsed-xml & node-path]
(zd/xml-> (zip/xml-zip parsed-xml) :item :title zd/text))
(get-node-value parsed-xml)
我想要做的是使用「節點-path」通過任何數量的關鍵詞,但是當如下書面談到作爲關鍵字序列,以便它拋出一個異常:
(defn get-node-value [parsed-xml & node-path]
(zd/xml-> (zip/xml-zip parsed-xml) node-path zd/text))
(get-node-value parsed-xml :item :title)
; ClassCastException clojure.lang.ArraySeq cannot be cast to clojure.lang.IFn clojure.data.zip/fixup-apply (zip.clj:73)
的感謝!