Clojure/lein repl&;元数据-这是一个bug,在哪里?

Clojure/lein repl&;元数据-这是一个bug,在哪里?,clojure,leiningen,Clojure,Leiningen,我将Leiningen 2 REPL与Clojure 1.3一起使用。 我对元数据有一种不一致的行为(或者我认为是这样) 如果这是应该的,请解释。如果没有-我应该在哪里存档错误 这就是metadate应该如何工作的,好吧 main=> (def a ^:inited [ 1 2 3]) main=> (meta a) {:inited true} 这就是我在引用引用空序列时得到的结果 main=> (def a ^:inited '() ) main=> (meta

我将Leiningen 2 REPL与Clojure 1.3一起使用。 我对元数据有一种不一致的行为(或者我认为是这样)

如果这是应该的,请解释。如果没有-我应该在哪里存档错误

这就是metadate应该如何工作的,好吧

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}

是一个读卡器宏,可扩展为
(引号…
)。所以你把元数据放在列表上。试试这个:

user=> (def a ' ^:inited [])
#'user/a
user=> (meta a)
{:tag :inited}
user=> (def a ^:inited '[])
#'user/a
user=> (meta a)
nil

哈哈。对当然我应该看到的。(关于行号的任何提示?)它们由编译器添加用于错误报告。列表用于函数调用。