zhoubo323 发表于 2011-5-15 09:02:32

autolisp基础求助

(setq alist '(1 2 3 4 5 6 7 8 9))

(cmnr m n 列表)                     ;;;从m到n的子列表
(cmnr 2 4 alist)                        返回(2 3 4)
(cmnr 3 6 alist)                        返回(3 4 5 6)
(cmnr 5 9 alist)                     返回(5 6 7 8 9)
这个程序应该怎样编写?

caoyin 发表于 2011-5-15 09:50:34

(defun CMNR (M N LST / LST2)
(setq LST (member M LST))
(repeat (1+ (setq I (vl-position N LST)))
(setq LST2 (cons (nth I LST) LST2)
      I    (1- I)
)
)
LST2
)

firstinti 发表于 2011-5-15 14:33:08

(reverse(member n(reverse(member m lst))))

caoyin 发表于 2011-5-15 15:24:47

回复 firstinti 的帖子

(setq alist '(1 2 3 4 5 6 7 8 4 9))
假如这样的表返回结果就不一样了

firstinti 发表于 2011-5-15 19:20:14

_$ (setq alist '(1 2 3 4 5 6 7 8 4 9))
(1 2 3 4 5 6 7 8 4 9)
_$ (reverse(member 4(reverse(member 4 alist))))
(4 5 6 7 8 4)
_$
页: [1]
查看完整版本: autolisp基础求助