私はClojureで単純だがイライラする問題を抱えています.ユーザーが自分の入力から何をしたいのかを理解し、それを行う別の関数を呼び出す関数(それを読み取り関数と呼びましょう)があります(アクション関数と呼びましょう). このアクション関数は、完了時に読み取り関数を呼び出して、ユーザーが別のタスクを実行できるようにします。
ここで私の問題は、read-function のコードを action-function のコードの前に置くと、read-function で、action-function が何であるかがわからないというエラーが発生することです (そのコードはさらにdown) 反対のことをすると、明らかに同様のエラーが発生し、read-function を解決できないなどのメッセージが表示されます。
これを修正する簡単な方法はありますか?
実際のコード:
(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))))))
)
このように、ajout 関数の (readCmd botin) 行で次のようなエラーが表示されます: Unable to resolve symbol: readCmd in this context
これら 2 つの関数のコードを逆の順序で配置すると、次のようなエラーが表示されます: Unable to resolve symbol: ajout in this context