表处理函数 何志丹
(car <list>) 该函数返回表<list>的第一个顶层元素。非空,返回第一个顶层元素;点对,返回左元素空表;空表,返回nil. 例子 : (car '(x y z))返回值x 注意:返回值的层次与list不同。
(cdr '(x y z))返回(y z) 该函数返回表list中除掉第一个顶层元素后剩下的元素组成的表,表<list>为nil,返回nil;若为点对,返回右元素。 如: (cdr (x y z))返回值(y z) 返回值的层次与list不一定相同。 注意:car,cdr并不改变表的结构和值 car和cdr的组合函数 AutoLisp接受car,cdr的任意组合,其深度最多4层。组合函数的形式为cxr,cxxr,cxxxr,cxxxxr其中“x"代表A或D,分别表示car,cdr,作用顺序是”先右后左“。
(last <list>)
(nth <n> <list>) 该函数返回表<list>中顶层第n个元素(从0开始)。
表的构造函数与修改函数 (cons <expr1> <expr2>) 它通过把第一个元素加到第二个元素构成一个新表。具体地说。若<expr2>是表,则构成新表;为原子,刚返回一个点对。 (cons 'x '(a b c))返回值是(x a b c) (cons '(a b c) 'x)返回((a b c). x)
(list <expr>...) 它返回所有<expr>的值(任意S_表达式)构成的表。 (list (+ 5 6) 'c 'd) 返回值(11 c d)
(append <list>...) 该函数要求list必须为表。它把所有的参数<list>中的各元素串在一起,组成一个新表返回。
(subst <nenitem> <olditem> <list>) 该函数在表的顶层元素中搜索,把所有的与<olditem>的值相同的元素用<newitem>替换。 注意: 1,只处理顶层元素。 2,若<olditem>没有找到,则不修改。 3,不修改list.
(reverse <list>) 该函数返回list的顶层元素倒排后的新表
联结表(Assocoation list),又称A-表,它是以点对或子表为元素的表。它可以表示为一个映射:<关键字集>-><数据集>,其中<关键字集>由每个点对或子表car组成,<数据集>由每个点对或子表cdr全体组成。
(assoc <key> <alist>) 搜索给定的联结表<alist>以找到选定的关键字<key>,然后返回包含关键字的第一个子表(或点对)中,没有找到返回nil. 注意:1,只在顶层找。 2,关键字相同的点对或子表,则assoc只返回前面的点对或子表。
(length <list>) 该函数返回一个表<list>的顶层元素的个数。 
|