You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让CLISP或SBCL在可恢复错误时自动执行continue操作?

CLISP加载PAIP示例代码时需多次输入continue的解决办法

加载《人工智能程序设计范式》(PAIP)中的auxfns.lsp和4_general_problem_solver.lsp文件时,CLISP会抛出包锁定错误,且需要输入4次continue才能回到REPL:

$ clisp  -i auxfns.lsp  -i 4_general_problem_solver.lsp

...

** - Continuable Error
DEFUN/DEFMACRO(DEBUG): #<PACKAGE COMMON-LISP> is locked
If you continue (by typing 'continue'): Ignore the lock and proceed

问题原因

错误源于代码尝试修改Common Lisp标准包(COMMON-LISP)中的符号(比如重定义标准函数debug),而CLISP默认锁定标准包以防止意外修改。

解决办法

方法1:启动CLISP时添加ANSI兼容参数

启动CLISP时加上-ansi参数,解除对标准包的严格锁定:

clisp -ansi -i auxfns.lsp -i 4_general_problem_solver.lsp

方法2:修改代码使用自定义包

在代码文件开头添加包声明,将所有自定义函数放到独立包中,避免触碰标准包:

(defpackage :paip-gps
  (:use :cl))
(in-package :paip-gps)

之后把文件内的所有函数定义都放在这个包的作用域内即可。

内容的提问来源于stack exchange,提问作者Sridhar Sarnobat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 07:17:04