明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1445|回复: 4

[求助]将序列b插入到序列a中指定位置c的程序

[复制链接]
发表于 2005-4-29 17:00:00 | 显示全部楼层 |阅读模式
将序列b插入到序列a中指定位置c的程序 如何能做到? 如:a ((1 "a") (2 "b") (3 "c") ……) b (2 (21 "aa") (22 "bb") (23 "cc")) 得到 ((1 "a") (2 "b") (21 "aa") (22 "bb") (23 "cc") (3 "c") ……)?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2005-4-29 17:21:00 | 显示全部楼层
(defun c:test( / a b c)
(setq a '((1 "a") (2 "b") (3 "c")))
(setq b '(2 (21 "aa") (22 "bb") (23 "cc")))
(setq b (cons (assoc 2 a) (cdr b)))
(setq a (subst (cons 2 b) (assoc 2 a) a))
(setq a (mapcar '(lambda(e) (if (/= (car e) 2) (list e) (cdr e))) a))
(apply 'append a)
)
发表于 2005-4-29 20:32:00 | 显示全部楼层
不建议用subst



(defun tt(a b c)


(setq i -1


                                                         tl (mapcar '(lambda(x)(if (= (setq i (1+ i))        c)(append a (list x))(list x)) b)


)


(apply 'append tl)


)
 楼主| 发表于 2005-4-30 12:39:00 | 显示全部楼层
多谢,每人一朵花。


我主要是不知道apply有这么个用法。


个人认为,用subst容易替换掉其它项,虽然本例中无碍,但平时使用时应注意。
发表于 2005-4-30 13:02:00 | 显示全部楼层
不是这样的吧,这样是把2为关键字的项都替换了,,,可你的要求呢?是不替换的吗?如果不都替换,那怎么确定你要替换的是哪项呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 08:15 , Processed in 0.169165 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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