0

在位于此站点的“纯文本控制台版本”链接的“Dictio”文件中,我注意到一个名为defs.

我认为这类似于defun,但我无法找到任何关于做什么的信息defs;它是用来定义函数还是变量?我希望使用现代技术重现此代码,这将有助于了解defs.

这些defs调用似乎在参数之前还包含多个名称(我希望它读为 ( defs name () body)。

查看列表中的第一个函数,这个“函数定义”[特别是“特征”这个词]中似乎包含更多内容,而在第三个函数中,['semantics']似乎包含在函数名称之后(之前论据)。

4

1 回答 1

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 )。它还将一个PRIORITYandSYS放到符号的属性列表中。因此DEFS用于以一种定义形式定义具有功能和属性的符号。

于 2015-05-10T15:16:30.803 回答