ALSO关键字在MLISP中的含义是什么?

时间:2015-02-09 21:13:16

标签: lisp

我最近在查看早期AI项目source code Parry。这很棘手,因为大部分代码都是用MLISP编写的,没有任何工作实现(我知道)。相反,我一直在使用语言规范(MLISP Users' Manual和之前的MLISP Technical Report)。

我无法解释的一个好奇心是IF-THEN-ELSE-ALSO结构,例如:

IF !LAMBDANAME(B) THEN ERROR("NONLAMBDA INTO REACT2",B) ALSO RETURN NIL;

我能够找到的文档没有提到ALSO语句的IF条款,而且我有点想弄清楚它的含义是什么?{1}}

我看到的一个似是而非的建议是,它使用finally子句用于Java中的异常处理的方式,即运行清理代码,无论{{1}如何运行终止了。另一方面,这并不能解释似乎永远不会引发异常的陈述,例如:

IF

有什么想法吗?

1 个答案:

答案 0 :(得分:7)

IF e1 THEN a ALSO b ALSO c ELSE d ALSO e ALSO f

只是

(COND (e1 a b c) (T d e f))

见1970年David Canfield Smith的MLISP