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