Clojure

Clojure 中文群 

u-bd 2 years ago
想请教一下一个宏
u-bd 2 years ago
,<>前面如果不加~',宏展开时也会带上命名空间,如test.util/<>,这样,如果加上了~',宏展开时会是<>。我看了官方文档syntax quote(`)是会对当前命名空间完全解析的,但是不太懂为什么加上了~'后宏展开时会把命名空间给去掉了,这里的机制是什么?
u-faadagjchb 2 years ago
因为你'<> 是一个 symbol
u-bd 2 years ago
哦,我懂了,先是quote把<>标记为一个不带命名空间的symbol,再通过unquote将<>插入到宏的let中,宏解析时,就是不带命名空间的了,是这样吗?
u-gbf 2 years ago
👍 reClojure 正在直播进行中