明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 啵浪鼓

[提问] 表提重复

[复制链接]
发表于 2024-7-3 09:26:39 | 显示全部楼层
应该搞一个竞赛,看谁能用最短的代码实现。当前是lijiao的
(SETQ LL '((10 20) (5 40) (10 30) (20 40) (10 40)) l nil)
(VL-REMOVE-IF-not '(lambda(x) (if (not (member (cadr x) l)) (setq l (cons (cadr x) l)))) ll)
发表于 2024-7-4 03:10:53 | 显示全部楼层
baitang36 发表于 2024-7-3 09:26
应该搞一个竞赛,看谁能用最短的代码实现。当前是lijiao的
(SETQ LL '((10 20) (5 40) (10 30) (20 40) (1 ...

最快才有意义
 楼主| 发表于 2024-7-13 21:15:55 来自手机 | 显示全部楼层
本帖最后由 啵浪鼓 于 2024-7-13 21:42 编辑

((10 20 2) (20 30 3) (10 20 5) (20 30 1) (20 30 2))
满足x和y坐标相同条件,求xy相同组成一块返回
( ((10 20 2)  (10 20 5))  ((20 30 3) (20 30 1) (20 30 2)) )
发表于 2024-7-15 16:35:44 | 显示全部楼层
本帖最后由 yoyoho 于 2024-7-15 19:21 编辑

啵浪鼓 发表于 2024-7-13 21:15
((10 20 2) (20 30 3) (10 20 5) (20 30 1) (20 30 2))
满足x和y坐标相同条件,求xy相同组成一块返回

;|                                                                                                                                                           
满足x和y坐标相同条件,求xy相同组成一块返回                                                                                                                  
(setq qq '((10 20 2) (20 30 3) (10 20 5) (20 30 1) (20 30 2) (10 500 4) (90 500 10) (100 500 400)))                                                   
(reverse (SORT-SAME-XY qq))                                                                                                                           
(((10 20 2) (10 20 5)) ((20 30 3) (20 30 1) (20 30 2)) ((10 500 4)) ((90 500 10)) ((100 500 400)))        
                                                                                                                                                            
|;                                                                                                                                                           
(defun sort-same-xy (l / lst l1 a)                                                                                                                           
   (while l                                                                                                                                                  
     (setq a   (car l)                                                                                                                                       
     l   (cdr l)                                                                                                                                             
           l1  (vl-remove-if '(lambda (e) (or (/= (car e)(car a)) (/= (cadr e)(cadr a))) ) l)                                                               
     lst (cons (cons a l1) lst)                                                                                                                              
     l1 nil                                                                                                                                                  
     l  (vl-remove-if '(lambda (e) (and (= (car e)(car a)) (= (cadr e)(cadr a)) ) ) l)                                                                       
     ))                                                                                                                                                      
  lst)                                                                                                                                                      
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-24 11:32 , Processed in 0.131382 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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