Lisp 的惯例是使用 car 代表列表的第一个元素,而用 cdr 代表列表的其余的元素。所以现在 car 是列表的第一个元素的同义词,而 cdr 是列表的其余的元素的同义词。列表不是不同的对象,而是像Cons这样的方式连结起来。 当我们想在 nil 上面建立东西时, > (setf x (cons 'a nil)) (A) 产生的列表由一个Con...
这被称为malformed list(畸形),因为它调用cdr得到的不是一个well-formed list或者是nil,因为你依然可以看到点。再来看看这个pair的结构: 这里我们创建了一个well-formed list,因为我们cons过程的第二个参数是另外一个cons表达式或者是nil。 我们可以使用car和cdr从这个list当中获取值,有些类似于Python链表中的first和...
提取第二个元素的操作是将列表输入FIRST函数,之后再输入REST,或者以我们新的术语,先CDR之后CAR。 如果把函数名从左往右读出来,会先读出CDR然后读出CAR。既然CAR函数的输入就是CDR的输出,用英语说就是列表的CDR的CAR。在Lisp中CDR的CAR会被缩写成为CADR。 如果把A和D调换一下位置会发生什么?函数CADR是提取列表的CA...
这被称为malformed list(畸形),因为它调用cdr得到的不是一个well-formed list或者是nil,因为你依然可以看到点。再来看看这个pair的结构: 这里我们创建了一个well-formed list,因为我们cons过程的第二个参数是另外一个cons表达式或者是nil。 我们可以使用car和cdr从这个list当中获取值,有些类似于Python链表中的first和...
如果一个表达式是表,我们称第一个元素为操作符,其余的元素为自变量.我们将 定义七个原始(从公理的意义上说)操作符: quote,atom,eq,car,cdr,cons,和 cond. (quotex) 返回x.为了可读性我们把(quotex)简记 为'x. > (quote a) a > 'a a > (quote (a b c)) ...
(car ’(a b c)) returns a (car ‘((a b) c)) returns (a b) (car ’( )) returns nil 31 (cdr 《表》 ) 这个函数返回除《表》中第一个元素以外的所有元素的表。 如果《表》是空的,则返回nil. 例如: (cdr ‘(a b c)) returns (b c) ...
def eq(car, cdr): if car==cdr: return True return [] def noteq(car, cdr): if car != cdr: return True return [] def and2(car, cdr):#用lisp实现一个and吧 if car!=[] and cdr!=[]: return True return [] def car(code): ...
(defun C:VV ( ) (setvar "cmdecho" 0) (setq en (ssget "TEXT,MTEXT")) (setq en-date (entget (car en))) (setq cenpt (cdr (assoc 10 en-date))) (setq rr (cdr (assoc 1 en-date))) (command "change" e "" "p" "la" "rr" "") (princ) ch821024ch 5-15 2 请问如何...
4.3 (car 列表)返回列表中的第一个元素,通常用来求X坐标 4.4(cadr 列表)返回列表中的第二个元素,通常用来求y坐标 4.5(caddr 列表)返回列表中的第三个元素,通常用来求Z坐标 4.6(cdr 列表)返回:除去第一个元素后的列表 4.7(cons 新元素 列表)返回:将新元素添加到列表 ...