gpt4 book ai didi

clojure - 解析宏中的符号

转载 作者:行者123 更新时间:2023-12-04 18:29:41 26 4
gpt4 key购买 nike

我被困在一个看似基本的事情上。我有一个命名空间,其中有一些定义:

(ns my-namespace)

(def my-definition "HELLO")
(def my-definition2 "HI")

现在,我想使用 my-namespace 中 vars 的值在宏中,但我想动态检索符号。例如。,
(defmacro my-macro [n]
(-> "my-namespace/my-definition" symbol resolve var-get))

以这种方式检索符号在函数中起作用(只要加载了命名空间),但在宏中不起作用。

在宏中,无法解析符号。我试过引用和取消引用,但它仍然不起作用。

在宏中是否可以使用这样创建的符号的值?如果是这样,如何?

最佳答案

试试这个:

(defmacro my-macro
[str]
(-> str symbol resolve deref))

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

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