我真不明白這是什麼宏。爲什麼使用讀者宏#'?
(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