回复 Andyhon 的帖子
嗯,谢谢您了! 判断表是否相等用的是 “equal”我需要的就是这个 呵呵!!
我主要担心的是如果不判断里面表内的元素是不是("X/N+1" ""),如果有其他的元素里也有相等的,就会丢元素了!!!
您理解吧!!
看到这里才明白你要的是什么 总结:
昨天晚上睡不着觉想了想,想出来应该怎么编了。
把xxb翻转过来,然后对第一个表用car和cdr分别判断是不是等于“X”和“”,同样的方式判断第二个表中的元素,然后两个表在比较,如果两个表相同,就删除 一个(“X” “”),再翻转过来得到新的xxb!!(defun c:ff()
(setq xxb (list(list"S1" "26") (list"09" "20") (list"09" "26") (list"09" "20") (list"10" "26") (list"10" "20") (list"10" "26")
(list"10" "20") (list"19" "26") (list"S" "") (list"10" "20") (list"10" "26") (list"10" "20") (list"10" "26")
(list"11" "20") (list"11" "26") (list"10B" "20") (list"11A" "26") (list"11B" "20") (list"11A" "26") (list"X" "")(list"X" "")))
(setq bb1(length xxb) xxa (reverse xxb) i 0)
(while i
(setq a1 (nth i xxa) )
(setq a2 (nth i xxa) )
(if (and (and (= (CAR A1) "X")(= (CADR A1) ""))(and (= (CAR A2) "X")(= (CADR A2) "")))
(setq xxa (cdr xxa))
(setq i nil))
)
(setq xxb (reverse xxa))
)再次的谢谢各位的帮助,没有你们的帮助,也不会打开我的思路,衷心的谢谢你们!!
本帖最后由 Andyhon 于 2011-6-14 10:18 编辑
(setq xxb (list
(list "S1" "26")
...
(list "S" "")
...
(list "11A" "26")
(list "11B" "20")
(list "11A" "26")
;; if many ....
(list "X" "")
(list "X" "")
(list "X" "")
(list "X" "")
(list "X" "")
)
)
(cond
((= (setq num (length (member (last xxb) xxb))) 1) xxb)
(T
(setq bxx (reverse xxb))
(repeat (1- num)
(setq bxx (cdr bxx))
)
(reverse bxx)
))
楼上无敌。 回复 Andyhon 的帖子
谢谢你热心的回答!!
thank you so much!!
页:
1
[2]