2012-01-12 16 views
1

私はClojureを学び、REPLをめちゃくちゃにしています。 assertのために、ドキュメントがClojure: 'assert'の引数が間違っていますか?

Usage: (assert x) 
    (assert x message) 

Evaluates expr and throws an exception if it does not evaluate to 
logical true. 

を言うので、私は、エラーと出力"Error message"を高めるために(assert false "Error message")を期待しました。しかし、それは与えます

java.lang.IllegalArgumentException: Wrong number of args (4) passed to: core$assert (NO_SOURCE_FILE:0) 

私は4つの議論があり、正しい使用法は何でしょうか? assertへのドキュメントはあまり冗長ではありません。

+2

On Clojure 1.3.0 '(assert false"エラーメッセージ ")がREPLに入力されると、AssertionError Assert failed:エラーメッセージが表示されます。私たちは助けになるためにもっと詳細が必要だと思います。 – Jan

+0

ありがとうございます。私はバージョン1.2.1を持っており、それは上記の出力を正確に示しています。そうですね、彼らは行動を変えたかもしれません。 –

+0

はい、1月は正しいです。バージョン1.2.1と1.3.0の間で動作が変更されました - オプションのメッセージ引数が追加されました。 – Scott

答えて

6

1.2.1で試してみましたが、私はあなたと同じ動作をします。

は、その後私もREPLで1.2.1に(doc assert)を試してみました:

clojure.core/assert 
([x]) 
Macro 
    Evaluates expr and throws an exception if it does not evaluate to 
logical true. 

をあなたがわずか1.2で一つのパラメータでバージョンを使用することができるようにメッセージが1.3で追加されたようです。

オンラインドキュメントを参照している場合は、正しいバージョンが表示されていることを確認してください。疑わしいときはいつでも、REPLに(doc the-function-or-macro-name)とタイプし、その文書を参照してください。私はdocをオンラインドキュメントよりもずっと頻繁に使用しています。私が使用しているバージョンでは常に最新のものですが、それはすでに私の指の下に置かれています。

+0

私はそれが愚かなバージョンの問題だったと思う。私は1.4.0からスナップショットを撮りました。みんなありがとう。 –

関連する問題