Clojure 1.3 で Leiningen 2 REPL を使用しています。メタ データの動作に一貫性がありません (またはそう思う)。
これが本来あるべき姿であれば、説明してください。そうでない場合 - どこにバグを報告すればよいですか?
これは、メタデータがどのように機能するかです。
main=> (def a ^:inited [ 1 2 3])
main=> (meta a)
{:inited true}
これは、引用された空のシーケンスを参照するときに得られるものです。
main=> (def a ^:inited '() )
main=> (meta a)
nil
main=> (def a ^{:inited (System/currentTimeMillis)} '())
main=> (meta a)
nil
引用符で囲まれていない空のシーケンスの場合、すべて問題ありません。しかし、まあ、行番号を取得します。
main=> (def a ^{:inited (System/currentTimeMillis)} ())
main=> (meta a)
{:inited 1339678437612, :line 1}
main=> (def a ^:inited () )
main=> (meta a)
{:inited true, :line 1}
ここでは行番号を取得しません:
main=> (def a ^:inited [ 1 2 3])
main=> (meta a)
{:inited true}
main=> (def a ^{:inited (System/currentTimeMillis)} [1 2 3])
main=> (meta a)
{:inited 1339678534644}