macros - 访问 ClojureScript 中另一个宏中的宏中定义的值
问题描述
假设以下代码
(defmacro sdef [sname]
`(def ~sname 3))
(defmacro sinc [sname]
(inc ... we want to access sname's value here...))
在 ClojureScript 中,我们会像这样使用它
(sdef sfoo)
(sinc sfoo) ; => 4
sinc
在我们的例子中,在编译时评估是强制性的。
我们设法在 Clojure 中使用 实现了这一点resolve
,这在 ClojureScript 中不起作用。我们知道,尤其是在 ClojureScript 中,宏评估与 ClojureScript 代码执行严格分开。但是,有没有办法实现上述目标?
解决方案
推荐阅读
- docker - 如何设置 influx docker 容器监听特定端口地址上的 collectd?
- python - (如何)Scipy 可以有效地将函数与数组值参数集成(没有循环)?
- azure-data-explorer - 如何在资源图中查询 JSON
- html - 如何创建具有背景图像的部分?
- session - 有没有办法撤销 GitLab 上的活动会话?
- c# - InternetExplorer 自动化期间的 RPC_E_DISCONNECTED
- mysql - 关于 Select 语句的 SQL 问题
- javascript - JsPDF,jsPDF-AutoTable 包装行文本需要隐藏溢出
- firebase - firebase 和 gatsby build 不能很好地协同工作
- php - 如何更改 Azure WebApp 的初始化目录