AutoLisp语言的特点
引用自翰林苑的个人博客
AutoLisp语言是一种函数式语言,一切都以函数给出,没有语句的概念和语法结构。
AutoLisp语言是表处理语言,函数的调用是通过表来完成的。表通过圆括号()来定义。
AutoLisp的程序和数据都是表结构,所以程序可以当作数据来处理,数据也可以当作程序来处理。
什么是列表(表和点对)?
表
在AutoLisp语言中,表是一种基本的数据类型,它有以下特点:
- 表是指放在一对匹配的左、右圆括号中的一个或多个元素的有序集合。
- 表中的每一个元素可以是任何类型的S-表达式,既可以是数字、符号、字符串,也
可以是表。 - 表中元素与元素之间至少要用一个空格隔开,而元素与括弧之间可不用空格。
- 表是可以任意嵌套的。从外层向里依次称为 0 层(也称顶层)、1 层、2 层、…
- 表中元素是有顺序的,每个元素都有一个序号。第一个元素的序号为0,第n个元素的序号为n-1。
- 表的大小为表的长度,即表中顶层元素的个数。
- 表有两种基本类型:标准表和引用表。
a. 标准表是 AutoLISP 程序的基本结构形式,AutoLisp程序就是由标准表组成的。标准表是用于函数的调用,其中第一个元素必须是系统内部函数或用户定义的函数,其他的元素为该函数的参数。例如:
(setq x 25.0)
b.引用表:这种表第一个元素不是函数,即不作为函数调用,常作为数据处理,在程
序中以如下两种形式存在:
'(a d b)
(quote (a d b))
点对
点对也是一种表,该表中只有两个元素,两元素中间为一圆点.
,且圆点与元素之间必须用空格分开。