全体人员,
我是那些坚持用 SETF 定义我的变量的类型之一。我已经升级到一台新机器(和一个新版本的 SBCL),它并没有让我逃脱(自然,我得到了适当的“==> undefined variable ...”错误)
我的问题是,我已经写了 20,000 行代码(错误地)用 SETF 定义了我的变量,我不喜欢重新编写所有代码以使解释器消化所有代码的前景。
有没有办法关闭该错误以便解释可以继续?
任何帮助表示赞赏。
真挚地,
-托德
最佳答案
一种选择是设置您的包环境,以便裸符号 setf
指代 my-gross-hack::setf
而不是 cl:setf
。例如,您可以进行如下设置:
(defpackage #:my-gross-hack
(:use #:cl)
(:shadow #:setf))
;;; define your own setf here
(defpackage #:my-project
(use #:cl)
(shadowing-import-from #:my-gross-hack #:setf))
;;; proceed to use setf willy-nilly
关于variables - 通过使用 SETF 定义变量来回避错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48359951/