У меня есть простая, но разочаровывающая проблема в Clojure, у меня есть функция (пусть вызывается ее функция чтения), которая определяет, что пользователь хочет делать с его ввода, а затем вызывает другую функцию, которая делает это (позвольте ей позвонить действие-функция). Эта функция-действие вызывает функцию чтения, когда это делается, чтобы пользователь мог выполнить другую задачу.
Теперь моя проблема в том, что если я поместил код для функции чтения перед кодом для функции действия, я получаю сообщение об ошибке в функции чтения, говорящей, что он не знает, какая функция действия (потому что код для он еще ниже), и если я делаю обратное, я получаю аналогичную ошибку, очевидно, что функция чтения не может быть разрешена и т.д.
Есть ли простой способ исправить это?
Фактический код:
(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 в этом контексте