明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1461|回复: 9

[讨论] cons函数求助

[复制链接]
发表于 2023-5-8 14:35:26 | 显示全部楼层 |阅读模式
(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函数是什么含义呀?
我知道的功能是把第一个参数加到第二个参数表里面。
这段语言是一个绘制多段线标注的一部分,好像要实现的功能是对标注样式的设置。还是云里雾里的。

发表于 2023-5-8 15:04:28 | 显示全部楼层
构成像这样格式 '(72 . 1)  的点对
 楼主| 发表于 2023-5-8 15:18:50 | 显示全部楼层
飞雪神光 发表于 2023-5-8 15:04
构成像这样格式 '(72 . 1)  的点对

还是不了解目的是什么。

点评

建议学习一下 python 基础教程,对 list,dictionary 有所了解后,也就能理解LISP的这个 dotpair 是什么意义了。  发表于 2023-5-8 15:24
 楼主| 发表于 2023-5-8 15:22:38 | 显示全部楼层
(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函数可以实现这些功能。
发表于 2023-5-8 15:27:01 | 显示全部楼层
命令: (cons 41 0.8) (41 . 0.8)   
(cons 41 0.8)等于'(41 . 0.8)  组码值为变量时就使用cons 将组码和变量拼成一个点对
发表于 2023-5-8 16:56:03 | 显示全部楼层
本帖最后由 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 函数来创造链表。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2023-5-8 23:23:15 | 显示全部楼层
774919153 发表于 2023-5-8 15:18
还是不了解目的是什么。

只需要理解A=B就行啦,至于为什么A要等于B,这是程序内部函数的事,不要去扣这些细节
发表于 2023-5-9 11:35:54 | 显示全部楼层
你这问的。为什么+号 就是把两个数加起来一样
 楼主| 发表于 2023-5-12 14:02:02 | 显示全部楼层
理解了,谢谢各位大佬
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 10:42 , Processed in 0.262036 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表