hamidciv 发表于 2022-7-5 22:23:27

请用这个代码解释我

嗨,亲爱的朋友们
如果可能的话,请给我解释一下这个代码是怎么做到的?我的问题是理解这段代码。
(foreach str(反面为“adam”“ben”“claire”“david”)(setq lst(cons(strcase str)lst)))
返回:
(“ADAM”“BEN”“CLAIRE”“DAVID”)??????????
谢谢

Lee Mac 发表于 2022-7-5 22:38:14

请参阅我的教程:Mapcar&Lambda
 
你不理解代码的哪一部分?

hamidciv 发表于 2022-7-5 22:42:43

亲爱的lee mac,我已经将这段代码写入了你们的教程,在这段代码中,我们为foreach定义了:一个变量(str),一个列表和函数,我有一个问题想问你们:
2-(cons(strcase str)lst)做什么?(是存储字符串吗?)
如果可能的话,请告诉我工艺代码的一般说明。
谢谢

Lee Mac 发表于 2022-7-5 22:55:30

 
与其详细解释这段小而简单的代码片段,不如推荐一种好方法,在尝试理解任何代码段时使用。
 
首先,从最里面的表达式向外逐个解析代码表达式,因为AutoLISP就是这样计算的。
 
对于每个表达式,确保您知道代码引用的每个变量或符号所持有的值。
 
阅读您不熟悉的每个函数的开发人员文档,确保您理解每个函数所需的参数以及每个函数返回的值。
 
以下是有关函数的文档:
 
颠倒
foreach公司
小写
欺骗
setq公司
 
在我的网站上可以找到到主要AutoLISP函数参考(和其他编程参考)的链接。
 

hamidciv 发表于 2022-7-5 23:03:55

谢谢亲爱的李
我花了几个小时,我理解了代码。
我非常感谢你们在网站上发布的教程。
我相对来说学习了autolisp,你建议我开始学习Visual LISP,还是继续学习autolisp直到高级阶段?
Autolisp是否满足在AutoCAD中编程的所有要求,还是Visual LISP也是需要学习的?
谢谢

Lee Mac 发表于 2022-7-5 23:13:30

 
听你这么说太好了,非常欢迎你。
 
 
首先,请注意,Visual LISP不是“Vanilla”AutoLISP的替代品,而是一个扩展。考虑到这一点,我个人建议在进入Visual LISP之前完全精通AutoLISP,因为如果您希望进入诸如使用Visual LISP反应器之类的领域,在AutoLISP中打下坚实的基础将非常有益,因为您的编程需要绝对无懈可击。

hamidciv 发表于 2022-7-5 23:15:40

尊敬的李:
非常感谢你给我的建议。

Lee Mac 发表于 2022-7-5 23:28:05

不客气,哈米德·西夫。
页: [1]
查看完整版本: 请用这个代码解释我