本帖最后由 jh1005 于 2024-4-8 16:56 编辑
没用过中望,对中望了解不多,可能有些函数不支持。
这函数在CAD使用中没有报错,也能返回正确的值,一直没发现,谢谢提醒。修改如下:
- ;;返回第N个元素之后的所有元素(包括N) by Lispboy
- ;;测试: (fy_List_nB '(2334 556 33 33 44 44 66 77 22) 3) ==> (33 44 44 66 77 22)
- (defun fy_List_nB (lst n / lst1 i L)
- (setq L (length lst))
- (cond
- ((< n 1) lst)
- ((= n 1) (cdr lst))
- ((= n 2) (cddr lst))
- ((= n 3) (cdddr lst))
- ((= n 4) (cddddr lst))
- ((and (>= n 5) (< n L))
- (setq i 0)
- (if (< n (/ L 2.0))
- (progn
- (while (and (setq a (car lst)) (< i n))
- (setq lst (cdr lst) i (1+ i))
- )
- lst
- )
- (progn
- (setq lst (reverse lst))
- (while (and (setq a (car lst)) (< i (- L n)))
- (setq lst1 (cons a lst1) lst (cdr lst) i (1+ i))
- )
- lst1
- )
- )
- )
- )
- )
|