【发布时间】:2013-11-28 07:51:57
【问题描述】:
书里有一个例子(P252),是关于宏中的&env,就是不明白怎么得到结果{x 1, y 2}
(defmacro spy-env []
(let [ks (keys &env)]
`(prn (zipmap '~ks [~@ks]))))
(let [x 1 y 2]
(spy-env)
(+ x y))
; {x 1, y 2}
;= 3
我在 REPL 中尝试过这样的:
user=> (defmacro spy-env [] (let [ks (keys &env)] `(prn ~@(keys &env))))
#'user/spy-env
user=> (let [x 1 y 2] (spy-env))
2 1
写好了。
【问题讨论】:
标签: clojure