函数定义
何志丹
(defun <sym> <argument list>
<exprt1>
<exprt2>
<exprt3>
<exprt4>
...
<exprtN>
)
1,defn仅仅查看一下自变量并建立一个函数定义。
2,<sym>为所定义函数的名称,它必须为符号原子。在程序调入内存,产生一个函定义之后,<sym>将被放到原子表ATOMLIST中。
3,<argument list>是一个函数的参数表,先形参,再局部变量,中间以/分开。
4,<expr1>....是任意S-表达式,它们甚至可以是所定义的函数自身调用。
函数的调用
和系统函数调用形式一样,用户定义的函数也是把函数名作为求值的第一个元素,实参作为其它元素,局部变量:出现在函数定义表中的变量为局部变量。
对一函数来说,出现在函数体中的除局部约束变量外,任何变量都是全局变量。
注意:
1,函数名相同,则被覆盖。
2,defun定义的函数实质上是一个被AutoLisp加上标记的表,函数名为该表的名,故可以用定义表的方式定义函数。
LAMBDA定义无名函数,与defun完全相同,只是没有函数名。