明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 591|回复: 7

[已解答] 新人 刚开始学习AutoLISP,请教一个问题啊~~

[复制链接]
发表于 2015-9-9 20:13 | 显示全部楼层 |阅读模式
本人从事工程设计行业,最近因为工作需要开始学习AutoLISP,大学时候只学过VB,考完证之后也荒废了。最近搜罗网上信息下载了大家推荐看的吴永进 林美樱写的AutoCAD程序设计魔法书(AutoLISP&DCL基础篇),看了六十几页了,最近看到有一处第七章节循环这一块,(setq snum (1+ snum))--设定snum加1,这里按照表达式运算的先后顺序“由内而外由左而右”应该写成(+ 1 snum)啊,为什么直接可以写成(1+ snum)啊?不是很懂,啊啊啊,可能问得问题有点白痴,还是希望有人能告诉我一下,周围都没有会lisp的人。。。。

点评

1+ 和 1- 是acad的标准函数  发表于 2015-9-9 20:32
 楼主| 发表于 2015-9-9 20:19 | 显示全部楼层
(defun c:xunhuan()
   (setq snum 1)
   (setq s_all 0)
   (repeat 100
      (setq s_all (+ snum s_all))
      (setq snum (+ 1 snum))    ;此处写成(1+ snum)也可以,为什么啊?
   )
   (princ "1+2+3+...+100=")(princ s_all)
   (prin1)
)
(prompt "\n<<xunhuan>>")
(prin1)
发表于 2015-9-9 20:36 | 显示全部楼层
应该是写成 (setq snum (1+ snum))吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2015-9-9 22:34 | 显示全部楼层
在lisp来说,1+也是个函数哦。
发表于 2015-9-10 07:53 | 显示全部楼层
在LISP中加法“+”和加一“1+”是不同的函数
加法可以对指定的数值相加
1+只能对单个变量加一
从速度上来讲1+是寄存器内加一,比加法处理程度快。
1+相当于C语言中的++处理符,而1-相当于C语言中的--处理符。
 楼主| 发表于 2015-9-10 09:49 | 显示全部楼层
重慶崽兒 发表于 2015-9-9 20:36
应该是写成 (setq snum (1+ snum))吧

谢谢!~ 确实翻看书的前面章节里介绍了1+也是功能函数,是我看的不仔细~
 楼主| 发表于 2015-9-10 09:51 | 显示全部楼层
ZZXXQQ 发表于 2015-9-10 07:53
在LISP中加法“+”和加一“1+”是不同的函数
加法可以对指定的数值相加
1+只能对单个变量加一

谢谢!~ 确实翻看书的前面章节里介绍了1+也是功能函数,是我看的不仔细~
发表于 2015-9-15 16:13 来自手机 | 显示全部楼层
入门还是先熟悉函数。打好基础。不要跳跃太大
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-20 12:46 , Processed in 0.247945 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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