乐筑天下

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

[编程交流] 删除表的前几个元素

[复制链接]

122

主题

647

帖子

223

银币

版主

Rank: 10Rank: 10

铜币
1174
发表于 2022-7-13 08:43:00 | 显示全部楼层 |阅读模式
比如有个表(1 2 3 4 5 6 7 8),想去掉前面的三个元素,可以用repeat循环三次cdr
(setq aa '(1 2 3 4 5 6 7 8))(repeat 3 (setq aa (cdr aa)))
有没有更简单的方法呢?
搜了一下跟cdr有关的保留函数,发现有一个,nthcdr,猜了一下它的参数,发现可以用,与上面的功能是一样的。
(load "c:/00/syz-nth.fas")(setq aa '(1 2 3 4 5 6 7 8))(syz-nthcdr 3 aa)返回(4 5 6 7 8)
还有一个保留函数 nth<-可以很方便的替换表中的某个元素。
用法是:(syz-nth<- 序号  值  表 )
(setq aa '(1 2  3 4 5 6 7 8 9) )
(syz-nth<- 5  3  aa );执行后a变成((1 2 3 4 5 3 7 8 9)
从0开始第5个数字6被替换成了3
用这个两个保留函数前,先加载 syz-nth.fas
回复

使用道具 举报

33

主题

357

帖子

36

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
487
发表于 2022-7-13 09:54:00 | 显示全部楼层
还是写吧…
回复

使用道具 举报

8

主题

98

帖子

12

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
128
发表于 2022-7-13 17:03:00 | 显示全部楼层
(setq aa '(1 2 3 4 5 6 7 8))(setq aa (cdddr aa));;;===(4 5 6 7 8)
回复

使用道具 举报

7

主题

45

帖子

18

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
63
发表于 2022-7-13 19:37:00 | 显示全部楼层
大师又出大作了,给力
回复

使用道具 举报

2

主题

18

帖子

6

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-14 14:47:00 | 显示全部楼层
很给力
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-1-31 15:46 , Processed in 0.318599 second(s), 62 queries .

© 2020-2025 乐筑天下

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