明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: f5612140

文字串列的問題

  [复制链接]
发表于 2004-6-27 21:33:00 | 显示全部楼层
怎么楼上2位跟楼主的意思好象不一样吧
 楼主| 发表于 2004-6-28 14:26:00 | 显示全部楼层
1.回meflying:9,10楼的帖回应4楼的题目 2.无痕老兄,你碰到对手了
发表于 2004-6-28 14:41:00 | 显示全部楼层
本帖最后由 作者 于 2004-6-28 20:02:38 编辑

没关系,百花齐放,互通有无,这样才有进步嘛。而且aeo功力不浅我也是知道的。有人跟你“对话”,那不也是件好事么? aeo程序中出彩的是排序这段:
  1. (mapcar 'last
  2.    (vl-sort (mapcar 'func lst)
  3.        '(lambda(x y / x1 y1)(setq x1(car x) y1(car y))
  4.                (if(= x1 y1)(<(cadr x)(cadr y))(< x1 y1))
  5.        )
  6.    )
  7.   )
  8. )
要写的更简便恐怕不容易,但是要写的和这个相当的也不是不可以 (能看到这段代码,大家应该感谢aeo啊:) ):
  1. (mapcar 'last
  2.   (vl-sort
  3.    (vl-sort (mapcar 'func lst)
  4.      '(lambda (x y)(< (cadr x)(cadr y))))
  5.    '(lambda (a b)(< (car a)(car b)))
  6.    )
  7. )
复制代码
友情提示:从效率上,这段不见得就比aeo的好(也没测试过),但是细心的话可以看到有规律的格式,在提炼一下,就是一个对任意多维数组排序的通用程序了,呵呵。
 楼主| 发表于 2004-6-29 08:41:00 | 显示全部楼层
本帖最后由 作者 于 2004-6-29 9:11:43 编辑

再看看这样的问题



'("b1" "b" "b11" "b1a" "b2a" "b11a" "b2" "b111a" "b111")


-&gt; '("b" "b1" "b1a" "b2" "b2a" "b11" "b11a" "b111" "b111a")
发表于 2004-6-30 03:09:00 | 显示全部楼层
先发一个我前面帖子所说的排序方法的完整程序:
  1. ;;;(strsort strlst) = 含数字后缀的字符串排序-无痕.2004.6 ok!
  2. (defun strsort (strlst)
  3.    (defun strbrk (str / i st1 n)
  4.        (setq i 0)
  5.        (while (not(or(= "" (setq st1(substr str(setq i(1+ i)))))(setq n(distof st1)))))
  6.        (list (substr str 1 (1- i)) (if n n 0) str)
  7.    )
  8.    (defun x-sort (lst do n)
  9.        (vl-sort lst '(lambda(x y)((eval do)(nth n x)(nth n y))))
  10.    )
  11.    (mapcar 'last (x-sort (x-sort (mapcar 'strbrk strlst) '< 1) '< 0))
  12. )
测试:;(setq lst '("w45""w-3""s""z1""z-4""df676""df24""bff4""bff""bff2""A34""A""A2""A5""bff-5"))
;(strsort lst) ->("A" "A2" "A5" "A34" "bff-5" "bff" "bff2" "bff4" "df24" "df676" "s" "w-3" "w45" "z-4" "z1")
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-1 02:25 , Processed in 0.161866 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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