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

Tim*_*rce 6 lisp

我最近一直在寻找早期AI项目Parry源代码.这很棘手,因为大部分代码都是用MLISP编写的,没有任何工作实现(我知道).相反,我一直在使用语言规范(MLISP用户手册和早期的MLISP技术报告).

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

IF !LAMBDANAME(B) THEN ERROR("NONLAMBDA INTO REACT2",B) ALSO RETURN NIL;
Run Code Online (Sandbox Code Playgroud)

我能找到的文档没有提到声明的ALSO条款IF,我正在摸不着头脑,了解它的用途.

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

IF REACTTO='QUIT THEN REACTTO:=NIL ALSO TRACE_MEM:='NOSPECIALANAPH;
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Rai*_*wig 7

IF e1 THEN a ALSO b ALSO c ELSE d ALSO e ALSO f
Run Code Online (Sandbox Code Playgroud)

只是

(COND (e1 a b c) (T d e f))
Run Code Online (Sandbox Code Playgroud)

参见David Canfield Smith,1970年的MLISP.