variables - 通过使用 SETF 定义变量来避免错误

标签 variables common-lisp sbcl setf

船员,

我属于那种坚持使用 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/

相关文章:

javascript - HTML5/JavaScript/jQuery - 使用 jQuery 选择器时输入范围 .value() 变得未定义?

css - SCSS : Override Variables

common-lisp - 从 Common Lisp/SBCL 中获得更高的速度

emacs - 在 Common Lisp 中什么是打印表示?

multithreading - 在 sbcl lisp 中使用线程时,变量在 lisp 中未绑定(bind)

javascript - 将两个变量加在一起?

java - 找不到符号java错误

common-lisp - 代码在 SLIME+SBCL 中运行,但不是普通的 SBCL

lisp - Common lisp : break, 但返回输入而不是 nil?

ssl - Common Lisp 中基于 SSL/TLS 的 Pop3