乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 96|回复: 2

[原创]给autolisp增加一种数据类型vector

[复制链接]

122

主题

647

帖子

223

银币

版主

Rank: 10Rank: 10

铜币
1174
发表于 2022-3-3 10:41:00 | 显示全部楼层 |阅读模式
vector是自动桌子没有公开的一种数据类型,它跟表有些类似,但更节省内存,操作起来更快,它还可以和表相互转换。
lisp表的数据结构是链表,它需要从头开始遍历,因此操作速度慢。vector没有这限制,可以从任何位置开始操作,因此速度更快。
vector一般翻译成向量,感觉不太确切。
princ一个vector会类似这样显示: #4(1 2 3 4),表示这个vector有4个元素,元素的列表在括号内。
经过研究,我基本弄明白了它的机理,发在这里大家一起试验吧。
我写了一个小程序syz-vector.fas,加载后就可以对vector进行操作了。
几个相关函数:
vector    建立一个vector
vector-length  获取 vector的长度
list->vector    表转换成vector
vector->list   vector转换成表
vector-elt     获取vector的某个元素
vector-eltlist aa)
(1 2 3 4 5)
命令: (list->vector '(2 3 4 5))
#4(2 3 4 5)
命令: (vector-elt aa 3)
4
命令: (vector-eltsyz-vector.fas

回复

使用道具 举报

122

主题

647

帖子

223

银币

版主

Rank: 10Rank: 10

铜币
1174
发表于 2022-7-13 07:53:00 | 显示全部楼层

大哥感谢你了。
回复

使用道具 举报

8

主题

97

帖子

17

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
122
发表于 2022-3-7 08:45:00 | 显示全部楼层

非常好的好人,免费发布。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 01:54 , Processed in 0.586136 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表