Edit:
Ответ на этот вопрос - я смотрел на функцию, а не на параметры цикла.
Во второй из следующих двух функций я не могу понять, почему 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)))))