Clojureでもろもろ中身を調べたかった。

 Clojureで遊んでいる時、プログラミングClojureを参考していましたが、その中に「ClojureはJavaであるからJavaオブジェクトのすべてのメンバを列挙する事ができる、そう、showを使えばね」と有ったのでやってみてましたけど、こちとら書籍サンプルコード付属のバージョンではなくてMac Portsでインストールしたバージョン1.2.0なので上手く行きません。
 書籍ではclojure.contrib.repl-utilsをuseして使おうぜと有りますが、


risa:~ tac$ clj
Clojure 1.2.0
user=> (use 'clojure.contrib.repl-utils)
java.lang.IllegalStateException: source already refers to: #'clojure.repl/source in namespace: user (NO_SOURCE_FILE:0)

 とか言って叱られてしまいます。名前がカブっているからダメだと。幸いにもshow自体はカブっていなかったのでそれだけuseすれば大丈夫でありました。


user=> (use '[clojure.contrib.repl-utils :only [show]])
nil
user=> (show Object)
===  public java.lang.Object  ===
[ 0]  ()
[ 1] equals : boolean (Object)
[ 2] getClass : Class ()
[ 3] hashCode : int ()
[ 4] notify : void ()
[ 5] notifyAll : void ()
[ 6] toString : String ()
[ 7] wait : void ()
[ 8] wait : void (long)
[ 9] wait : void (long,int)
nil

 これでいろんなものが覗き放題ですよ、覗け覗け、覗きまくれ。おー