当您尝试打印变量时,是否可以打印错误消息?

时间:2019-12-15 10:20:57

标签: lisp common-lisp

例如:

CL-USER 1 > (setq l1 '(a b c))
(A B C)

CL-USER 2 > l1
(A B C)

当我键入 l1 时,我要打印的不是我的 (ABC) ,而是那可能吗?因为不是对函数的操作,所以我在其中放置一个条件,而不是列表,而是打印一条消息。在这种情况下,没有函数。

1 个答案:

答案 0 :(得分:4)

Symbol macros是一种评估任意代码而不是在评估时查找值的方法。例如:

* (define-symbol-macro l1 (error "No peeking!"))
* l1
ERROR: No peeking!