6

私が理解しているように、Clojureはリーダーマクロテーブルを公開したり、ユーザー定義のリーダーマクロを許可したりしません。

http://clojure.org/readerから:

The read table is currently not accessible to user programs.

Clojure からそれらを除外する理由を述べている (おそらく Rich Hickey からの) 決定的または明示的な声明があるかどうか疑問に思っています。

Clojure にユーザー定義のリーダー マクロがないことの良し悪しを尋ねているのではないことに注意してください。なぜだろう。

4

2 に答える 2

3

率直に言えばTagged Literals、次のフォームで何をするかを指定できるものがあります。たとえば、次のように追加できます。

{to/u clojure.string/upper-case}

data_readers.clj(ドキュメントを参照)、次のように記述します。

testapp.core> #to/u "asd"
"ASD"

しかし、リーダー マクロを完全にサポートするほど強力ではありません The data reader function is invoked on the form AFTER it has been read as a normal Clojure data structure by the reader

この古いログを見つけました (方法は聞かないでください) http://clojure-log.n01se.net/date/2008-11-06.html

ここでは、リーダー マクロに関する Rich Hickey の考えについての議論があります。

于 2015-09-08T11:45:45.113 に答える