0
我有一個論點,不斷採取我的向量參數和解構它,即使我試圖通過幾種方式避免它。如何避免Clojure函數解構參數向量?
錯誤:
clojure.lang.ArityException: Wrong number of args (5) passed to: core$build-par-sel$fn
嘗試1:
(defn build-par-sel
[& {:keys [^clojure.lang.PersistentVector par-vals best-val]}]
; Do stuff...
)
(let [best 100.0
pars [1.0 2.0 3.0 4.0]]
(let [par-sel (build-par-sel
:par-vals pars
:best-val best)]))))
嘗試2:
(defn build-par-sel
[& {:keys [par-vals best-val]}]
; Do stuff...
)
(let [best 100.0
pars [1.0 2.0 3.0 4.0]]
(let [par-sel (build-par-sel
:par-vals pars
:best-val best)]))))
嘗試3:
(defn build-par-sel
[par-vals best-val]
; Do stuff...
)
(let [best 100.0
pars [1.0 2.0 3.0 4.0]]
(let [par-sel (build-par-sel pars best)]))))
粘貼的異常被報告在'build-par-sel'的定義內發生,在一些匿名函數build-par-sel中創建 - 我們不能在沒有看到該函數主體的情況下解決這個問題。 – noisesmith
@noisesmith請將此作爲答案。你是對的。我在'build-par-sel'裏面使用'apply'而不是'mapv'。這解釋了我的困難!謝謝。 – user1559027