gpt4 book ai didi

clojure - 解析 let 中的符号

转载 作者:太空宇宙 更新时间:2023-11-03 18:38:22 24 4
gpt4 key购买 nike

如何编写函数来解析词法环境中的符号?

(let [foo some-var]
(let [sym 'foo]
(resolve-sym sym)))

我想获取 'foo 绑定(bind)到的 var。

最佳答案

我不完全确定为什么我想要这样的东西,但看起来肯定可以做到。来自 http://clojuredocs.org/circumspec/circumspec.should/local-bindings

(defmacro local-bindings
"Produces a map of the names of local bindings to their values.
For now, strip out gensymed locals. TODO: use 1.2 feature."
[]
(let [symbols (remove #(.contains (str %) "_")
(map key @clojure.lang.Compiler/LOCAL_ENV))]
(zipmap (map (fn [sym] `(quote ~sym)) symbols) symbols)))


(let [foo 1 bar 2]
(local-bindings))
=> {foo 1, bar 2}

关于clojure - 解析 let 中的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15600573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com