2011-06-21 14 views
11

私はちょうど#=リーダマクロをpostから「発見」しましたStackoverflow これは問題を解決します。このリーダーマクロは、言語の公式(文書化された部分) になる可能性はどれくらいありますか?廃止されましたか、または の行動が変更されましたか?Clojure#=リーダマクロ

リーダーマクロ#=リーダマクロは、次のs式を(マクロ展開前の)Lispリーダーによって評価されます。

答えて

4

* print-dup * trueで何かが印刷されるときには、コア言語で使用されるので、そのまま残しておきたいと思います。それがなぜ文書化されていないのか分かりません。

user=> (binding [*print-dup* true] (prn {:foo 1 :bar 2})) 
#=(clojure.lang.PersistentArrayMap/create {:foo 1, :bar 2}) 
nil 
+0

ありがとうございました。私はまたそれがなぜ文書化されていないのだろうかと思います。マクロが展開される前に、マクロでサブ式を評価すると便利です。 – Ralph

3

これは文書が消えたり、別のものに置き換えられる可能性があるため記載されていません。私はあなたのプログラムでそれを使用することをお勧めしません。