答案是我在看函數,而不是循環參數。
在以下兩個函數中的第二個函數中,我無法弄清楚爲什麼recur認爲它只應該傳遞一個參數。
CompilerException java.lang.IllegalArgumentException:不匹配的參數數重複出現,預期:1個參數,得到:2,編譯:(/ home/cnorton/projects/clojure/clj_in_action/mr1/src/mr1.clj:84)
我看不到什麼是不正確的。
(defn determine-rover-move
[rover-coord mov]
(println rover-coord mov)
(cond
(= \L mov) (assoc rover-coord 0 (adj-compass-posL (first rover-coord)))
(= \R mov) (assoc rover-coord 0 (adj-compass-posR (first rover-coord)))
(= \M mov) (mov-rover rover-coord)
))
(defn execute-each-move
[moves rover-coord]
(loop [mov moves]
(if (nil? mov)
rover-coord
(recur (rest moves) (determine-rover-move rover-coord mov)))))
好的,我現在看到問題了。循環只有一個參數。我在看功能參數。 – octopusgrabbus
也許提供您自己的問題的答案作爲答案,而不是評論。 –
實際上,我打算和回答你自己的問題的說明說更好地使用評論。 – octopusgrabbus