当然,LISP文件可以包含您想要/需要的任意多个函数定义。
作为加载LISP文件的一点背景:
加载LISP文件时,文件中的表达式都会按照它们在文件中的显示顺序进行计算。通常,LISP文件只包含“defun”表达式,因此这些函数是在加载文件并计算“defun”表达式时定义的(注意,这只是定义函数,而不是计算函数本身)。但本质上,文件中的任何LISP表达式都将被评估(例如,当在函数定义之外找到“princ”表达式时加载消息,因此在加载文件时进行评估)。
考虑到这一点,请注意,在您的示例中,只有在命令行中键入“test”后,才会定义“Cmd1”、“Cmd2”和“Cmd3”-此时,将计算“test”函数定义中的表达式,即“Cmd1”、“Cmd2”和“Cmd3”的“defun”表达式。
替代方案:
- (defun c:test ( )
- ... test function expressions ...
- )
- (defun c:Cmd1 ( )
- ... Cmd1 function expressions ...
- )
- (defun c:Cmd2 ( )
- ...
- )
- etc.
使用上述结构,“test”、“Cmd1”、“Cmd2”和“Cmd3”的“defun”表达式将在加载时进行计算,加载后所有四个命令都可用。
(希望这篇文章不要太混乱) |