error-handling - 便携使用make-instance做条件?
问题描述
在 Common Lisp 中,使用make-instance
而不是make-condition
制作条件对象是否可移植?
例如:
(define-condition foo (condition)
())
(make-condition 'foo)
(make-instance 'foo)
这是否与如何在 CLOS 类层次结构中放置条件有关?(subtypep 'condition 'standard-class)
在 SBCL 和 CLISP 中返回 false。但是,make-instance
可以在两种实现方式中设置条件。这是由标准保证的吗?
解决方案
根据 Practical Common Lisp 第 19 章中的第 4 个脚注,它是不可移植的:
“在一些 Common Lisp 实现中,条件被定义为 STANDARD-OBJECT 的子类,在这种情况下,SLOT-VALUE、MAKE-INSTANCE 和 INITIALIZE-INSTANCE 将起作用,但依赖它是不可移植的。”
链接到特定页面:
http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html
推荐阅读
- material-ui - 使用 Material UI 更改未选中复选框的颜色?
- django-rest-framework - ModelViewSet 在检索方法中混合了 url 模式
- scala - 纯值不是 io.databaker.db.DbParameter 的成员
- html - Css Grid-template-area 在浏览器中不起作用
- r - 在 Quanteda 中,我们如何从字面上匹配引号?
- opencv - 如何使用 OpenVINS 库获取位置
- android - for循环在android中没有给我正确的结果
- ruby-on-rails - 如何使用神社获取照片缓存数据
- javascript - React Native Reanimated 并行
- c# - (WPF, Data Binding, DependencyProperty) Can I get only the list of specific member variables in the list?