cons函数求助
(entmake (list '(0 . "TEXT")(cons 1 (rtos a 2 1))
(cons 10 b)
(cons 40 zg)
(cons 11 b)
'(72 . 1)
'(73 . 2)
(cons 50 c)
)
)
哪位大神可以解释一下这里面的cons函数是什么含义呀?
我知道的功能是把第一个参数加到第二个参数表里面。
这段语言是一个绘制多段线标注的一部分,好像要实现的功能是对标注样式的设置。还是云里雾里的。
构成像这样格式 '(72 . 1)的点对 飞雪神光 发表于 2023-5-8 15:04
构成像这样格式 '(72 . 1)的点对
还是不了解目的是什么。 (entmake (list
'(0 . "TEXT" )
(cons 1 text)
;(cons 7 textst) ;文字样式
;(cons 8 textlay);文字图层
(cons 10 zd);文字插入点坐标
(cons 40 0.5);字高10
(cons 41 0.8);宽高比0.8
(cons 50 ang);文字角度
);end list
);end entmake
还有一个类似的,也是从论坛里看到的。
不理解为什么cons函数可以实现这些功能。 命令: (cons 41 0.8) (41 . 0.8)
(cons 41 0.8)等于'(41 . 0.8)组码值为变量时就使用cons 将组码和变量拼成一个点对 本帖最后由 vitalgg 于 2023-5-9 00:10 编辑
https://gitee.com/atlisp/atlisp- ... E9%97%A8/1-lisp.org
点对是组成表的基本形式。
链表 list
利用点对(Cons)我们可以创造出很多结构,而当中最简单的,或许就是链表(linked list)。链表其实就是把 Cons 的 CAR 指定成某些元素,而把 CDR 指定到另一个 Cons 或是 NIL 。如下,我们可以经由 list 函数来创造链表。 774919153 发表于 2023-5-8 15:18
还是不了解目的是什么。
只需要理解A=B就行啦,至于为什么A要等于B,这是程序内部函数的事,不要去扣这些细节 你这问的。为什么+号 就是把两个数加起来一样 理解了,谢谢各位大佬
页:
[1]