関数を記述しようとすると、何度も例外が発生します。それは正常です。Java では、例外が発生する場所と理由を見つけることができますが、clojure の例外テキストは私を夢中にさせます。clojure で例外を読み取る方法と、コードのどこで例外が発生し、その理由を見つける方法についてのヒントはありますか?
たとえば、次のコードを使用します。
(do
(list?)
(list? [])
(list? '(1 2 3))
(list? (defn f [] (do ())))
(list? "a"))
REPLでこの関数を呼び出すと、取得されます
java.lang.IllegalArgumentException: Wrong number of args (0) passed to: core$list-QMARK- (NO_SOURCE_FILE:46)
2行目で問題を見つけるのにあまり役に立ちません。もう少し複雑なコードでは、ほとんど情報が得られません。(もちろん、リストを見てください。引数の数が間違っている場合もあります。) REPL でコードを書こうとするのは間違っていますか? REPLで例外メッセージを読む方法は? REPL の例外に関するより良い情報を取得する方法はありますか?