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