本帖最后由 yjr111 于 2011-11-12 16:49 编辑
刚刚知道程序有效率问题,foreach确实比vl-remove-if慢很多,修改alin的程序后测试一下速度至少快4倍以上
 - ;;;;;;;;删除重复表元素后组成新表,且不改变原表重复表元素的第一个出现的位置;;;;;;;;;;;
- (defun deldup2(lst)
- (setq ret '())
- (vl-remove-if (function (lambda(x)(IF (NOT (MEMBER x RET))
- (SETQ RET (CONS x RET))nil)))lst)
- (reverse RET)
- )
|