在位于this site的“纯文本控制台版本”链接的“Dictio”文件中,我注意到一个名为defs
的Lisp命令(?)。
我认为这与defun
类似,但无法找到defs
所做的任何信息;用于定义函数,还是变量?我希望使用现代技术重现此代码,这将有助于了解defs
的目的。
defs
调用似乎在参数之前还包含一个以上的名称(我希望它能读取(defs name () body
)。
查看列表中的第一个函数,似乎有更多内容包含在这个“函数定义”中[特别是'特征'一词],而在第三个函数中,在出现的内容之后包含['semantics']
是函数的名称(在参数之前)。
答案 0 :(得分:2)
DEFS
由文件SYSCOM
中的软件定义。
这是一个 FEXPR ,它是一个获取未评估参数的函数。 Common Lisp没有这样的功能。它使用宏来代替。
使用示例:
(DEFS \#COLOR
FEXPR (LAMBDA (A)
(EVAL (SUBST (CAR A)
'COLOR
'(OBJECT
(MARKERS\: (\#PHYSOB COLOR)
PROCEDURE\: ((\#COLOR *** COLOR)))))))
PRIORITY 192.
SYS (\#PROPERTY))
这里有一个符号#COLOR
。它获得了一个在此名称下定义的函数(实际上是 FEXPR )。它还将PRIORITY
和SYS
放在符号的属性列表中。因此DEFS
用于在一个定义形式中定义具有函数和属性的符号。