删除表的前几个元素
比如有个表(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 23 4 5 6 7 8 9) )
(syz-nth<- 53aa );执行后a变成((1 2 3 4 5 3 7 8 9)
从0开始第5个数字6被替换成了3
用这个两个保留函数前,先加载 syz-nth.fas
还是写吧… (setq aa '(1 2 3 4 5 6 7 8))(setq aa (cdddr aa));;;===(4 5 6 7 8) 大师又出大作了,给力 很给力
页:
[1]