function - 如何将 gensym 传递给 common lisp 中的函数名
问题描述
我正在使用 Lucerne 构建一个 api,并尝试根据列表生成这些 api(它们是非常简单的端点)。问题是 lucerne 使用的视图只是函数,所以如果我(gensym)
在运行时传递给宏,则该视图函数的名称只是设置为(gensym)
(或者失败,不记得是哪个)。
我想在一个宏中动态命名一组这些视图函数,该宏将处于某种循环中,每次运行宏扩展的代码时,函数都有一个新名称(所以如果我只使用标准gensym
每次运行宏时,每个函数将始终具有相同的名称,并相互覆盖)。有没有办法做到这一点?
解决方案
您可能希望使用intern
创建“公共”符号(用户将通过名称调用)和make-symbol
“私有”符号(存储在某处)。
推荐阅读
- python - 线程 ptvsd.stopping 中的 Python 3 异常(很可能在解释器关闭期间引发
- javascript - 为什么 jquery 可以在 onClick 上工作,但不能在 ontouchstart 上工作?
- c++ - 如何使类依赖于另一个类?
- java - JAX-RS 2.0.1 响应异步取决于自定义标头
- c++ - 以下哪两项在理论上更快
- java - 找不到 javafx.controls JavaFX 11 / JDK 11.0.1
- vuejs2 - 防止同时打开两个“模态”
- html - VBA 检查网络上的多个 html 复选框
- python - 如何在 Django 中触发选择事件?
- python - 如何按列对树视图进行排序?