guosheyang 发表于 2022-7-23 09:59:00

删除列表中指定索引位置处的元素

给lisp的初学者们共享个函数(高手请略过),删除列表中指定索引位置处的元素,有问题请反馈,谢谢!
;函数功能:删除列表中指定索引位置处的元素         
;参数:L 列表,index 要删除项的索引位置(从0开始)
;返回值:删除指定索引位置元素后的列表            
;测试
(ygs_del_by_index
(setq L'(1 1 2 2 3 3 4 5 5 5 6 7 11 12 13 5 15 17 5 19 90 85 85 85 90 93 101))
(setq index 16)
)
;主程序
(defun ygs_del_by_index(L index / NL)
(if(and(= index 0))
(progn
   (repeat index
   (setq nl(cons(car L )nl));新表
   (setq L(cdr L))
   )
    (append(reverse nl)(cdr L))
)
(princ(strcat"\n所指定的index超出列表范围," "请指定0-"(itoa (1-(length L)))"的正整数"))
)
)
页: [1]
查看完整版本: 删除列表中指定索引位置处的元素