Clojure言語におけるシンタックスを扱う.

フォームは 📝Clojure フォーム を参照.

Clojure: MetaData

ClojureのSymbolやCollectionには, MetaDataと呼ばれるデータをmapとして付与して参照することができる.

MetaDataの リーダマクロは ^ みたいなhat表記.

setterとしては, (def ^{:hoge 1} x) のように, defを利用する.

さらに, (def ^:huga y) のように書かれることも多いが, これは (def ^{:huga true} y)と同じ意味. mapの表記が省略されて keywordのみが現れている.

MetaDataの一覧を表示するときは, meta マクロを利用する.

user> (meta #'x)
;; =>
{:line 12,
 :column 7,
 :file "*cider-repl repo/kotori-clj:localhost:38291(clj)*",
 :name x,
 :ns #namespace[user]}

refs: