macros - 如何根据自身定义宏?

标签 macros scheme lisp

LISP 宏如何成为 defined in terms of itself ?我在 LISP In Small Pieces 中看到了类似的定义。我认为可能有一个引导阶段,在定义宏定义之前主体被插入语法环境,但我无法在任何地方找到它。

最佳答案

如果您在此行使用View git blame,您可以看到引入更改的提交。以前,define-macro 是根据基本语言使用 set-syntax! 定义的。

提交将此定义替换为使用 define-macro 的先前值的定义,该值在加载解释器时可从 flisp.boot 获得。

关于macros - 如何根据自身定义宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47244489/

相关文章:

c - 函数中的宏行为

lambda - 如何在 Scheme 中使用列表中的 lambda

recursion - 为什么Emacs lisp中没有尾递归优化,而不是像其他方案一样?

python - Python中SymbolType有什么用?

scheme - 使用定义的过程作为参数与使用 lambda 表达式作为参数产生不同的结果

c++ - 如何在结构/类中获取有关 "current type"的信息?

C预处理器: building a path string

LISP - 每次出现搜索原子后的原子

C/C++ 预处理器 - 'Charify'

lisp - 定车!并输入方案语言