有没有办法检查一个符号是否被引用?
Is there a way to check if a symbol is quoted?
我正在尝试在 Emacs Lisp 上创建一个宏,我正在努力查看用户是否可以传递带引号或不带引号的符号。
实际上我需要类似 quote-only-if-is-not-quoted
的宏。有没有这样的东西?我在任何 Lisp 方言中都没有发现任何相关内容。宏示例:
(quote-only-if-is-not-quoted 'q) => (quote q)
(quote-only-if-is-not-quoted q) => (quote q)
提前致谢。
宏参数未计算,所以是的,您可以检查是否引用了一个参数,如果没有,则引用它。是这样的吗?
(defmacro quote-only-if-is-not-quoted (arg)
(if (and (consp arg)
(eq (car arg) 'quote))
arg
`(quote ,arg)))
我正在尝试在 Emacs Lisp 上创建一个宏,我正在努力查看用户是否可以传递带引号或不带引号的符号。
实际上我需要类似 quote-only-if-is-not-quoted
的宏。有没有这样的东西?我在任何 Lisp 方言中都没有发现任何相关内容。宏示例:
(quote-only-if-is-not-quoted 'q) => (quote q)
(quote-only-if-is-not-quoted q) => (quote q)
提前致谢。
宏参数未计算,所以是的,您可以检查是否引用了一个参数,如果没有,则引用它。是这样的吗?
(defmacro quote-only-if-is-not-quoted (arg)
(if (and (consp arg)
(eq (car arg) 'quote))
arg
`(quote ,arg)))