乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 47|回复: 19

[编程交流] 帮助学习Lisp编程

[复制链接]

8

主题

42

帖子

34

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 14:31:32 | 显示全部楼层 |阅读模式
我想学习如何编写一些lisp程序,我有一些编程数控机床的经验。不仅仅是M和G代码编程,而是使用高级编程和参数编程的真正精细的程序。因此,我知道如何为CNC编写一个程序,该程序表示“如果参数1000大于或等于perameter1001,则大于goto…”或者如何调用子程序和其他类似的东西。
所以我想知道的是,这里是否有人可以帮助我弥合CNC和Lisp编程之间的差距。那么Lisp与下面这样的语句等价于什么呢。。。。
 
(如果(P1000 GE P1001)转到N100)----
(如果(p1000 GE P1001)P1002=P1003+P1004)------
(PCALL 300)-调用子程序300-----
(IF(P1000 GE P1001)PCALL 300 ELSE PCALL 200)
这对我来说只是一个开始,但我想如果我能把它和我已经知道的东西联系起来,可能会更容易。因此,任何帮助都将不胜感激。谢谢你的帮助。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:37:58 | 显示全部楼层
如果LISP编程中仍使用语句,例如:
 
  1. (if (this is true)
  2.   .. do this...
  3.   .. else do this...
  4. )

 
或使用progn包装多个语句:
 
  1. (if (this is true)
  2. (progn
  3.    .. do this..
  4.    .. and this..
  5. )  ; end Progn
  6. .. else do this..
  7. )  ; end If

 
或具有多个程序:
 
  1. (if (this is true)
  2. (progn
  3.    .. do this..
  4.    .. and this..
  5. )  ; end Progn
  6. (progn
  7. .. else do this..
  8. .. and this..
  9. .. and this..
  10. ) ; end progn
  11. )  ; end If

 
 
对于调用子函数:
 
子函数定义如下:
 
  1. (defun mysub (arg1 arg2 / var1 var2)
  2.   .. do something..
  3. )

 
使用“defun”而不是“defun c:”,其中arg1和arg2是运行它所需的参数,var1和var2是局部变量。
 
可以这么说:
 
  1. (mysub x y)

 
其中x和y是参数arg1和arg2的值。
 
希望这对你有意义,如果我错过了什么,尽管问
 
回复

使用道具 举报

8

主题

42

帖子

34

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 14:39:13 | 显示全部楼层
好的,谢谢你。
 
所以在CNC,我只想说
 
(P100=5)
 
用LISP我会说。。。
 
(setq(P=5)对吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:41:46 | 显示全部楼层
如果使用P作为变量名,5作为其值,则在LISP中:
 
Tbh,有了这样的问题,你最好去一个教程网站去学习-更多内容将被涵盖。
 
查看Jeffery Sanders-只需谷歌Jeffery P Sanders LISP>
回复

使用道具 举报

2

主题

182

帖子

180

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 14:44:25 | 显示全部楼层
 
我说,跳过教程网站,去读SICP的书;在开始的时候花一个月,在结束的时候节省你自己一年的时间——当你学习不同风格的高级语言并在以后尝试解释方法和手段时,阅读这本书将节省你很多时间。
 
相信我!
 
[ http://mitpress.mit.edu/sicp/full-text/book/book.html ]
回复

使用道具 举报

8

主题

42

帖子

34

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 14:49:43 | 显示全部楼层
美好的一本在线书。我一定会读到的。谢谢你的帮助。(我简直不敢相信你编写acad才9个月。)太棒了!当心。
回复

使用道具 举报

2

主题

182

帖子

180

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 14:53:18 | 显示全部楼层
那本书是为Scheme语言而不是AutoLisp编写的。它的意思是作为教学辅助工具。
 
然而,Scheme语言与AutoLisp方言非常相似,因此从Scheme切换到AutoLisp将很容易。
回复

使用道具 举报

8

主题

42

帖子

34

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 14:54:29 | 显示全部楼层
哦好啊但是jeffery sanders的网站是关于lisp的。正当我还从那个网站上找到了一个lisp程序,它会根据你对一些问题的回答为你编写一个lisp,但我无法让它工作。你熟悉这样的Lisp程序吗?我想我可以用它来制作一些简单的lisp程序,然后我可以查看代码并从中学习。该程序称为Make\u lsp。lsp听说过吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:57:37 | 显示全部楼层
我还没有听说过,但我建议您从下到上学习LISP,不要使用LISP为您生成LISP。
 
只要看看这个网站上的例子,再看看Se7en推荐的书,我也能从中学到很多
回复

使用道具 举报

2

主题

182

帖子

180

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 15:00:31 | 显示全部楼层
*眨眼眨眼**gack*不(我甚至不想看到那样的东西……听起来很可怕!)。请相信我,不可能有“Make\u lsp”。你想要的lsp。像这样的事情是编程的厌恶,只会伤害你。
 
说真的,听起来你想马上开始编码。在这种情况下,让我试试另一种策略。我也处在你的地位。经过很长一段时间,我现在可以在脑海里写一个程序,然后把它打出来,第一次就可以完美地工作了。我提到这一点,因为它听起来有点令人印象深刻,但为了做到这一点,我花了数年的时间进行黑客攻击。然而,如果你读了那本书,你将在几个月而不是几年内完成同样的事情(这一壮举对你来说也不会令人印象深刻,因为你也能做到)!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 00:25 , Processed in 0.665379 second(s), 83 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表