明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1739|回复: 3

参数(defun sym ([arguments] [/ variables...]) expr...)

[复制链接]
发表于 2004-4-14 21:49:00 | 显示全部楼层 |阅读模式
(defun sym ([arguments] [/ variables...]) expr...) 参数 sym 函数名。 arguments 函数需要的形式参数名。 / variables 函数使用的一个或多个局部变量名。
局部变量名称前的斜线和第一个局部名称之间,以及该斜线和最后一个参数(如果存在的话)之间,都必须保持至少一个空格的距离。 expr 执行函数时要执行的任意数目 AutoLISP 表达式。 如果没有声明任何参数或局部符号,则在函数名称后必须使用空括号。
如果指定了重复的参数或符号名称,AutoLISP 使用第一个出现的名称,而忽略其他的名称。 返回值 最后计算的表达式的值。
警告! 不要将内置函数或符号作为 sym 的值。这样会覆盖原有的定义,导致内置函数或符号无法使用。要获得内置函数和预定义函数的列表,请使用 atoms-family 函数。 样例 (defun myfunc (x y) ...) 具有两个参数的函数
(defun myfunc (/ a b) ...) 具有两个局部变量的函数
(defun myfunc (x / temp) ...) 一个参数和一个局部变量 (defun myfunc () ...) 未指定参数或局部变量 ----------------------------------------------------------------------------- 在程序里面用参数有什么好呢??? 我觉的在一个程序里参数用多了好难看懂
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2004-4-14 22:20:00 | 显示全部楼层
一个程序里如果不用参数,就会使程序的变量很混乱,就更难看懂...


比如:


(defun c:test()


(setq a 1 b 2)


        (setq c (sum        a b))


(setq d (1+ c))


)


(defun sum (a b) (+ a b))


这样,如果一看就知道这是一个计算A B和的值,我们仅仅需要知道函数sum的功能(假设这里是a+b),而不需要去看sum函数,就完全可以把这个主函数读懂了,至于sum函数的局部功能,我们任何时候都可以去看,完全不影响对这个程序的理解,


而如果不使用参数:


(defun c:test()


(setq a 1 b 2)


(sum)


(setq d (1+ c))


)


(defun sum () (+ a b))


这样,我们在读这个函数的时候,我们会发现主程序中的这个C不知道哪儿来的,这样就必须去读sum子函数...


另外,你对函数的左右基本上完全不明白,你这样用函数只是把其中一段复杂点的代码单独写在一个地方,一保持主函数的简洁...


sum函数定义分别同前面两个)


(defun c:test()


(setq a 1 b 2 d 3 e 4)


(setq c (sum a b))


(setq        f (sum d e))


)


而如果你不用参数,后面计算d+e的时候,你无法使用原来的sum函数,而必须重新再写一个...所以说你对函数的使用意义几乎是完全不知...
 楼主| 发表于 2004-4-15 08:53:00 | 显示全部楼层
看的我迷迷糊糊的


在看看 帮助文件
发表于 2004-4-16 19:09:00 | 显示全部楼层
其实函数和程序的意思差不多 我们为什么要编程序?因为有相同的工作进程要对某些物体进行操作。如果这个相同的
工作进程不存在,也就没有编程序的必要。 作为函数来说,是程序的组成部分中,相对完整、独立的一段代码,这段代码的重复使
用或独立性相对较大,所以才会将这些代码独立出来成为函数。至于传递给函数的参数,
要看函数的功能确定。 使用参数对于LISP程序来说有好处,因为不用声明变量,而且可以使函数的通用性大些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 02:54 , Processed in 0.174045 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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