我真不明白这是什么宏。为什么使用读者宏#'?
(def n 12)
=> #'lambda.core-test/n
#'n
=> #'lambda.core-test/n
(= #'n n)
=> false
(= #'n #'n)
=> true
(= 12 #'n)
=> false
我读的地方,#'x
相同(var x)
所以
(var n)
=> #'lambda.core-test/n
(var-get (var n))
=> 12
人们似乎使用它时重新评估符号的定义在REPL不起作用。
这究竟宏和如何做它涉及到重新评估?
是'#'x'膨胀以'(VAR X)',其评估对VAR本身,而不是它的值。 – Lee
在哪个具体情况下,我宁愿使用var而不是它的值? –
如果'x'有元数据,那么你可以用'(元#'X)'检索。 'alter-var-root'也取var '(alter-var-root#'n inc)'。 – Lee