全体人员,

我是那些坚持用 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/

10-11 21:50