scheme - 如何在scm方案中定义一个函数来测试其参数是否为宏?

标签 scheme chez-scheme bigloo

例如,假设 'match 是宏,而 'car 不是:

> (macro? 'match)
#t
> (macro? 'car)
#f

最佳答案

大多数方案没有这样的宏?函数。要区分普通函数和宏,您可以使用 RnRS 中的 procedure?:

> (procedure? car)
#t

关于scheme - 如何在scm方案中定义一个函数来测试其参数是否为宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64247905/

相关文章:

scheme - + : expects type <number> as 2nd argument, 给定:#<void>;

syntax - 制作 "derived"标识符的最简洁方法?

algorithm - 求解 RR' - NN' = 1 的欧几里得算法。使用蒙哥马利算法进行模幂运算以在 python 或 Petite Chez 方案中实现费马测试

c++ - 从嵌入的角度来看,Bigloo 和 ECL 之间有什么区别?

java - Java编译出现 "Method too large"错误如何规避?

python - 如何从 python PLY 中的方案解释 "do"循环

lambda - 我不明白为什么 lambda 方案有效

macros - Racket 阅读器宏