У меня есть простая, но разочаровывающая проблема в Clojure, у меня есть функция (давайте назовем ее read-function), которая вычисляет, что пользователь хочет сделать из его ввода, затем вызывает другую функцию, которая делает это (давайте назовем это action- функция). Эта экшн-функция вызывает функцию чтения по завершении, чтобы пользователь мог выполнить другую задачу.
Теперь моя проблема в том, что, если я помещаю код для функции чтения перед кодом для функции действия, я получаю ошибку в функции чтения, говорящую, что она не знает, что такое функция действия (потому что код для это еще дальше), и если я сделаю обратное, я получаю аналогичную ошибку, очевидно, говоря, что функция чтения не может быть решена и т. д.
Есть ли простой способ исправить это?
Фактический код:
(defn ajout [botin]
(def botin botin)
(readCmd botin)
)
(defn readCmd [botin]
(println "Entrez une commande svp ")
(def botin botin)
(let [cmd (read-line)]
(if (.equals cmd "a") ((println "Ajout 8o") (ajout botin))
(if (.equals cmd "e") ((println "Elim 8o") (eliminer botin))
(if (.equals cmd "i") ((println "Imprim 8o") (imprimer botin))
((println "Commande invalide, nous vous rapellons que les commandes possibles sont : ") (print-les-cmd) (readCmd))))))
)
вот так я получаю сообщение об ошибке в строке (readCmd botin) в функции ajout:
Не удалось разрешить символ: readCmd в этом контексте
Если я поставлю код для этих двух функций в обратном порядке, я получу сообщение об ошибке:
Не удалось разрешить символ: ajout в этом контексте