明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 926|回复: 4

一个简单的问题

[复制链接]
发表于 2007-11-30 19:43 | 显示全部楼层 |阅读模式

怎么样在取得列表中的最小数的同时把这个最小的数从列表中删除

以变再次比较取得次等小的数。

发表于 2007-12-1 10:44 | 显示全部楼层

;;(test '(1 3 -2 9 22 45 0))

(defun test (nlst)
  (vl-remove nil (mapcar '(lambda (a b) (if (/= a 0) b))
                         (vl-sort-i nlst '<)
                         nlst
                 )
  )
)

 楼主| 发表于 2007-12-1 18:31 | 显示全部楼层

vl-remove

不是LISP的标准函数吧 需要加载吗?若要的话加载又需要什么条件呢?

能不能给下详细的注解 我刚学LISP 

谢谢

发表于 2007-12-2 09:05 | 显示全部楼层

Visual LISP 函数,加载方法(vl-load-com),平台是AutoCAD2000或以上的版本

vl-remove 功能:删除表中的元素。如:

(vl-remove 3 '(1 2 3 4 5 1 2 3))---->(1 2 4 5 1 2)

(vl-remove nil '(2 3 nil "" "ddd" 10.5))---->(2 3 "" "ddd" 10.5)

发表于 2007-12-2 14:43 | 显示全部楼层
vl函数不需要(vl-load-com)的,vla,vlax,vlr才需要加载(vl-load-com)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-12 06:27 , Processed in 0.145092 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表