当我在 REPL 提示符下输入:
(setf (readtable-case *readtable*) :invert)
我收到此错误消息:
Error in SETF [or a callee]: Cannot expand the SETF form (READTABLE-CASE
*READTABLE*).
为什么我会收到此错误?
当我在 REPL 提示符下输入:
(setf (readtable-case *readtable*) :invert)
我收到此错误消息:
Error in SETF [or a callee]: Cannot expand the SETF form (READTABLE-CASE
*READTABLE*).
为什么我会收到此错误?
(format nil "~A ~A" (lisp-implementation-type) (lisp-implementation-version))
说“京都通用 Lisp GCL 2.6.2”。结果(eq 'readtable-case 'cl:readtable-case)
是 T。请问这都是什么意思?
第二个表达式意味着您使用了正确的符号。第一个指示您使用的是哪个 Lisp 实现:应该是GNU Common Lisp 2.6.2
经过一番搜索,我在 gcl-devel 列表中找到了这条消息,上面写着......
问题似乎是这一行:
(setf (readtable-case *readtable*) readcase)
在随机检查可读性中。我建议将此作为下一个要解决的 ansi 问题,因为它会阻止测试。
...主题为“ansi-tests in 2.7.0”。该消息来自 2004 年。
底线:我猜你需要一个更新的甚至* 一个不同的 Lisp 实现。
(* 如 Rainer Joswig 所述,该问题也会影响当前的 2.6.12 版本)
我猜所有主要的 Lisp 实现都支持这一点。CLISP 2.49可以,SBCL 和 CCL 可能可以,据我所知 ECL 也可以。