sunqv 发表于 2023-3-20 22:37:53

car和cadr提取的为数值,cddr提取的却成了list型,求解答


[*]zuobiao 值为 (266886.0,131267.0,2.5)
[*](setq qx1 (-(car zuobiao)(/ JCCCD 2)));qx1   为real型
[*](setq qy1 (-(cadr zuobiao)(/ JCCKD 2)));qy1   为real型



问题:

[*](setq qh1 (cddr zuobiao));qh1   结果为什么是list型?
求大神解惑

kucha007 发表于 2023-3-20 22:57:04

谷歌查一下咯


xyp1964 发表于 2023-3-20 23:00:32

试试(caddr a) 或 (nth 2 a)

whg587081 发表于 2023-3-20 23:05:32

本帖最后由 whg587081 于 2023-3-20 23:07 编辑

试试(car(cdr(cdr a)))

Klein 发表于 2023-3-22 14:56:12

CDDR是去掉前两个元素后的表,虽然只有一个元素,它还是个表

Klein 发表于 2023-3-22 14:57:37

用 (setq qh1 (caddr zuobiao))

wzg356 发表于 2023-3-22 15:17:48

本帖最后由 wzg356 于 2023-3-22 15:22 编辑

CDR返回list移除第一个元素后剩下的部分,如果是点对(cons a b),则返回b
car返回list第一个元素

CDR与car组合
(car ls)==(nth 0 ls)
(cadr ls)==(car(cdr ls))==(nth 1 ls)
(cddr ls)==(cdr(cdr ls))
(caddr ls)==(car(cdr(cdr ls)))==(nth 2 ls)
以此类推,a/ d共可以嵌套4个

sunqv 发表于 2023-3-22 22:18:12

谢谢各位,我换了个思路,直接提取XDATE中的值来用了

llsheng_73 发表于 2023-3-29 11:52:28

car,cdr是最基本的两个,其它的都是组合,,通过A,D任意组合,只要a或d不超过4个就行
只要是ca...r返回的都是单一元素,cd...r都是返回表
页: [1]
查看完整版本: car和cadr提取的为数值,cddr提取的却成了list型,求解答