使用带有状态闭包的处理程序绑定是否有效?

问题描述

这是一个符合 Common Lisp 的程序吗?

(handler-bind ((condition (let ((x 0))
                            (lambda (c)
                              (declare (ignore c))
                              (print (incf x))))))
  (signal 'condition)
  (signal 'condition))

SBCL (2.0.5.37) 的输出是:

1
1

ABCL/CCL/ECL 的输出是:

1
2

Common Lisp 标准定义了哪些行为?


结语

这是 SBCL 中的一个错误,it is now fixed

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)