乐筑天下

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

[编程交流] 关于lisp(a)的一般问题

[复制链接]
uli

4

主题

7

帖子

3

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 07:42:55 | 显示全部楼层 |阅读模式
大家好,
作为lisp的初学者,我不知道lisp现在是否用于autocad-autolisp之外的其他用途。也许有些链接-对我来说,lisp似乎非常强大。谢谢
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:48:37 | 显示全部楼层
我无论如何都不是专家,但据我所知,AutoLISP和Visual LISP是通用LISP(CL)的分支,在某种程度上(早期),LISP实际上比ObjectARX(C++)在功能上更强大,后者现在是AutoCAD的最高级别开发语言。在interwebs上给Common LISP甚至Vital LISP一些搜索,这也应该向您展示其他内容。
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 07:57:47 | 显示全部楼层
你也可以检查一下。
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 08:02:14 | 显示全部楼层
其他一些例子:http://www.lispworks.com/success-stories/index.html
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 08:09:23 | 显示全部楼层
如果您认为AutoLisp功能强大,那么您根本不知道。AL最初是在80年代初从XLisp 1.0中“窃取”的,然后被ADesk进行了极大的压缩,使其能够容纳64KB。XLisp中已有的许多内容在AL中都不可用(即使是在AL的Vital/Visual Lisp扩展今天),我们仍然没有像最初的XLisp 0.0那样的面向对象,更不用说新的Common Lisp的CLOS对象系统。
 
我正在尝试扩展AutoLisp或将另一个lisp添加到acad中:http://alisp-ext.wikidot.com/
 
目前我倾向于ECL。为了了解它的功能示例,他们的alpha IDE主要用ECL编写,并通过rdnzl lisp扩展链接到Windows的dotnet库。
 
有一个问题似乎与CL有关,我实际上使用了ECL LispShell来测试答案:http://www.cadtutor.net/forum/showthread.php?70943-LISP计数字母表
回复

使用道具 举报

53

主题

302

帖子

249

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
265
发表于 2022-7-6 08:14:30 | 显示全部楼层
Irneb,
我不是像许多在这个论坛上发帖的人那样的AutoLISP专家。但我认为我的知识刚刚够应付我的土木工程工作。我的目标是做一些类似于civil-3D但在2D中非常适合公路设计的事情。
 
至于面向对象,我也想知道为什么autodesk不能通过实现您在回复中给出的链接中提到的类似CL的东西来实现它。毕竟是Lisp的发明者约翰·麦克阿西,他在许多年前就预见到,计算将像人们可以使用的任何其他服务一样,这一天已经到来。为什么lisp(或它的某种形式)不能这样做?。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:18:42 | 显示全部楼层
我也在通过编码以我自己的方式扩展LISP,尽管很小。NET LispFunction方法(太多,无法在此发布,但很乐意与大家分享)。
 
我来自一个交通小组,主要在Land Desktop工作,现在已经转到了一个公用事业小组,正在领导我们向Civil 3D的过渡(不是一个简单的过渡,也不是学习曲线)。Irneb比我更了解一般编程的复杂性,更不用说LISP了,但我选择关注LISP+。NET主要是因为使用Civil 3D。
 
Civil 3D已大大降级为。NET或ObjectARX(C++)API功能公开。。。例如,只能在一些较低级别的AECC*对象上使用vlax Dump对象,即使可以访问属性对象,其属性和方法也可能不会暴露给LISP解释器。非常令人失望;这就是我的困境。
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 08:24:59 | 显示全部楼层
阿德斯克在政治上对Lisp程序有些反感。至少在过去的20年里,他们似乎更希望它从他们的生活中消失。尽管他们确实意识到,如果删除它,他们将有效地删除大部分客户群。因此,他们将其保留在原处,只需最少(如果有的话)升级。同时“鼓励”使用其他语言和API。
 
Lisp作为acad的一部分已经有近30年了,它一直是一种一致的语言——80年代编写的大多数插件现在仍然可以使用。早期的一些升级,主要是在90年代中期,内存容量大大增加,VL扩展(实际上不是adesk的东西-他们只是从别人那里买的)。据我所知,他们自千禧年以来所做的唯一“升级”就是添加了layerstate函数,最近还添加了get/set属性(2012)。除了vlax函数之外的所有函数都会被排序,如果AL内部有一些OO,那么就有可能使用完整的ObjectARX系统,这会使大多数ActiveX(vlax)内容变得不必要(只有在使用外部程序时才有用)。
 
如果你将其与所有其他语言和API进行比较,你会发现它是唯一一种持续时间如此长的语言(即使功能受限)。E、 g.最初的EXP扩展(80年代末-90年代中期/后期)是用C编写的-这已经“消亡”。然后他们引入了用C++编写的ARX扩展(大约在90年代中期),目前仍在使用。然后到了90年代末,VBA从2009年10月开始从acad中删除(只能单独下载)。自2000年中期以来,DotNet似乎逐渐成为ARX的替代品。
 
我认为EXP扩展被删除了,因为C没有面向对象。面向对象是这类扩展的自然原则,即实体是具有属性、方法和事件的对象,有些实体具有相似(甚至相同)的属性,即继承,它只是自然而然地遵循以相同方式构造程序的原则。所以他们不得不重新发明一个面向对象的库(API),然后转向一种具有面向对象功能的语言(他们选择了C++,尤其是微软的Visual C++)。我最大的问题是为什么他们没有把AL打开到CL球里。。。我的意思是,在那个阶段,CL可以说是最“有经验”的OO语言。尤其是MSVC的束缚使得acad几乎不可能在MS-OS之外的任何东西上工作(请参阅ACadMac的限制)。
 
自从微软将VBA添加到他们的windows程序中以来,就引入了VBA,因此许多程序员开始使用它,并开始要求它在acad中可用。VBA内置了OO(虽然是一个基本的、不一致的OO),所以它并不太适合。尽管许多程序员认为VBA(甚至是纯VB)是最差的语言之一,但这并不是说它没有被广泛使用。在过去十年左右的时间里,它可能是(至少是微软产品)中使用最多的语言,可能是全VB紧随其后。自从MS丢了它之后,它就被丢了。如果这对另一个线程的讨论是好/坏的。实际上,ADesk紧随MS的步伐,推出了他们最喜欢的“玩具”网络(VB.Net/C#,不过你也应该能够使用其他语言,例如F#/Python,尽管很难找到例子)。对我来说,DotNet(至少是C)是一种“很好”的语言,它让我想起了很多Java——即完全面向对象,也没有我认为C/C++那么神秘。尽管这些语言中的大多数语法(对我来说)仍然过于冗长,可能只有Python/Ruby这样的语言例外。
 
语言分为四大类,称为世代。第一代是原始位码(即1和0)-就像第二次世界大战中用来破解纳粹密码的计算机一样,它与根据“程序”所需的输入过程输出设置开关没有太大区别。第二种是位代码的简化,称为汇编,基本上为一些位代码集提供了一种描述性的简化,如MOV(在RAM和CPU寄存器之间复制一些数据)。第三种是通常所说的“编程语言”——你会看到的大多数(如果不是全部的话)都属于这一类。第四个是“自然编程语言”的白日梦,即键入一个英语句子,计算机就能理解你,我见过其中一些(例如80年代的问答有这样一种查询语言)。
 
这些第三代语言中的大多数并不完全符合3.0标准。有些可以归类为更接近2.5(如C)或更接近3.5(如Python)。我认为lisp是最接近3.0的语言之一。这是“自然”(请原谅双关语)3d生成语言。提供您可能期望的所有功能,这些功能不是汇编功能,但不会过于冗长,以至于成为一个CPU指令集。
 
程序员分为不同的组。你会看到许多人有一种(或多种)首选语言。你甚至会发现一些人除了他们最喜欢的以外,对任何事情都很鄙视(我可能是其中之一,尽管我并不为此感到骄傲)。但通常程序员的工具箱中至少有一些“工具”,并选择最适合手头工作的工具。所以一般来说,我认为RM的想法是关于课程的par——尽可能用Lisp做一些事情(因为它是最容易使用的工具),但如果它根本不适合这个缝隙,请使用下一个更细粒度的工具。
 
我的编程历史相当悠久。我决不是这方面的专家,甚至在某些方面也不是。我知道的仅仅是我真正的无知。但是在我接触过的所有语言中(按时间顺序:gvbasic/BasicA/Pascal/AutoLisp/C++/Java/Delphi/VB/VBA/ObjectPAL/JavaScript/ASP/VBScript/PHP/VB.Net/C#/Free-Pascal/Lazarus/Python/Common-Lisp/F#),C++是我最厌烦/最厌恶的语言,Lisp(包括AL和CL)是一见钟情,现在仍然存在:即使AL有着衰老的厌食症的外表,我仍然觉得这是我最愿意使用的语言——如果可能的话。最后一个补遗就是我创建alisp ext wiki的原因,我希望它能够更频繁地出现——因此我希望它更像我的第二个爱情CL。
 
CL的唯一问题是IDE(集成开发环境),大多数都不比VLIDE好多少。IMO MS的Visual Studio是有史以来最好的IDE,像Intellisence、AutoComplete等,甚至使C/C++都可以忍受(这说明了很多)!紧随其后的是博兰德的德尔菲,然后是拉扎勒斯,然后是VBA。ECL的LispShell/LispEdit对于Alpha开源来说并不算太差,尽管它甚至落后于VLIDE——而且由于它已经将近6年没有更新了,它似乎进展得很快。
 
请注意:我从来没有遇到过任何程序员可以通过简单地输入任何一种语言来创建一个有意义的大型程序(更不用说超过一种)。不管他们在那个特定的领域有多少经验
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:30:25 | 显示全部楼层
Epic post Irné
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:34:13 | 显示全部楼层
Awesome infoormation, Irne.
 
Your comment about 'if the IDE cannot help you to the material' immediately brings me to the dropping of the ActiveX documentation from VLIDE's help. It's there, but one has to hunt for it (or use that online version you pointed me to, which is nice but not the same), rather than it simply being incorporated into the VLIDE's help (as it has been for years).
 
... Long live LISP!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 20:44 , Processed in 0.448216 second(s), 72 queries .

© 2020-2025 乐筑天下

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