当我阅读《Clojure之乐》时,我遇到了一些代码。
这个声明
《Clojure的乐趣》:(不理解)
引用如下:
您会在Clojure宏中时而看到模式
(fn [~'key ~'r old# new#]
(println old# " -> " new#)
这个声明
~'some-symbol
的确切行为是什么?
some-symbol#
和'~another-symbol
或gensym之间的区别是什么?《Clojure的乐趣》:(不理解)
引用如下:
您会在Clojure宏中时而看到模式
~'symbol
,用于选择性地捕获宏主体中的符号名称。这种笨拙的方式[11]的原因是Clojure的语法引用试图解析当前上下文中的符号,导致完全限定符号。因此,~'
通过取消引号来避免解析。