 - ;;以下子程序按既定专业排序
- (defun zypx (lst / i Lstok Newlst tmp tmp1 lst1)
- (setq Lstok '("*总*" "*规*" "*建*" "*结*" "*水*"
- "*暖*" "*电*" "*饰*" )
- )
- (setq Lst '("建筑" "电气" "给排水" "规划" "暖通" "总图" "装饰" "结构")
- (setq Newlst '())
- (foreach tmp LstOK
- (foreach tmp1 Lst1
- (if (wcmatch tmp1 tmp)
- (setq Newlst (cons tmp1 Newlst))
- )
- )
- )
- (setq Newlst (reverse Newlst))
- Newlst
- )
这是一个排序问题,就是要把Lst 表中的元素按照LstOK 中的顺序排列。嵌套循环固然没有问题,还有没有其他更简单或者效率更高的办法呢?
|