中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > Web开发 > Cgi/Perl
AutoLisp笔记(二)
作者:佚名 时间:2004-08-03 10:42 出处:互连网 责编:chinaitpower
              摘要:AutoLisp笔记(二)

            赋值与求值函数
                何志丹
(SetQ <sym1> <exp1> [<sym2> <exp2>]...)
 偶数位上的参数求值,并把求值的结果赋给前一个符号原子。SetQ 返回最后一个表达式的值。
注意:
1,SetQ是串行函数 ,即对前面的符号先赋值,后面的符号后赋值。
2,SetQ只是简单地加了一个内存指针,这个指针是从奇数位上的符号指向其后偶数位上的数据所指的内存数据。
例子:
(SetQ x 2.4 y (+ x 2.0)
返回值4.5


(Set <sym> <expr>)
Set函数把参数二的值赋给参数一的值,返回参数二的值。
例子:
(SetQ c "AB")
(SetQ d 'c)
(kSet D 2.0)
返回值为2.0 ,c的值为2.0


禁上求值函数Quote
(Quote <epxr>)
Quote函数的功能是阻止求值器对其参数求值,返回没有值的S-表达式。
例子:
(Quote (+ 6 5))
返回值是(+ 6 5)而不是11。
注意:
1,此函数的作用范围是紧跟其后的S-表达式。
2,单引号是简写,只能用在表达中,不能从键盘输入一个单引号引起来的表达式直接响应AutoCAD的命令提示。
3,(CDR (1 2 3))是错误的,为了求该表的CDR,求值器先到表(1 2 3)求值,求值器把1作为函数名,于是出错。



Function 函数
与Quote函数基本相同,当<expr> 为函数名时,Fuction就把该函数的局部变量约束到当前环境中。
如:
(apply  (function +) '(2.0 4.0 5.5))
返回值11.5


再求值函数
(eval <expr>)
先对变量expr求值,把结果返回给eval,eval对它再次求值。
如:
(SetQ x  '(* 5.0 6.0))
(eval x)
返回值30.0


小结:
1,在SetQ函数中符号名和SetQ中sym的值不能和AutoLisp的内部符号和内部函数名(在自带的编辑器中以不同的颜色显示)相同,否刚会使这引起些符号失去原有的意义。
2,Quote函数只能阻止对其后的S-表达式的一次求值,有时被 阻止的表达式需要转化成调用被求值,可以用eval.
3,利用eval,我们可以把程序中用到的数据结构独立于程序。
如:
(SetQ datastr  '(list x y z))

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有