学习Lisp编程:简介,版本等

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


Lisp编程

Lisp是一门编程语言家族,始于1958年,最终于1961年实现。这使其成为仅次于Fortran的第二古老的通用语言。.

但是,尽管Fortran继续逐渐消失,但是Lisp仍然是计算机科学领域中非常重要的一部分.

Lisp在几个方面都很独特。一方面,Lisp中的每个表达式都是一个列表,是该语言中两种主要数据类型之一。 (这就是为什么它被称为“ Lisp”的原因。)

由于可以将代码本身评估为语言中的数据类型,因此Lisp有助于进行递归和自省.

此外,与大多数其他语言不同,Lisp代码是由底层Lisp系统处理的实际数据结构的人类可读版本。.

这意味着程序员对程序的看法与程序在“幕后”的实际操作之间存在高度相似性。

Lisp可用于任何数量的应用程序和问题域,但对人工智能和机器学习特别有用.

Lisp独立实现

Lisp的用途很多,这表明Lisp很有用。其中包括独立语言以及应用程序内部构建的语言。我们将在下面讨论.

普通口齿不清

普通Lisp是Lisp最受欢迎的方言之一。它于1984年首次发布,十年后成为ANSI标准。.

这是对Maclisp的改进。但这并不是Maclisp上唯一可用的Lisp版本。还有其他几个。但是Common Lisp对标准化的承诺使其最终成为最成功的.

Lisp通用资源

如果您对Common Lisp感兴趣,有很多学习方法.

图书

Common Lisp的在线教程很少,因此,如果您真的想学习该语言,则需要查阅一本或多本书籍。幸运的是,其中许多在线版本.

  • Common Lisp:对符号计算的温和介绍
  • ANSI Common Lisp
  • 实用普通Lisp
  • 在Lisp上:常见Lisp的高级技术
  • 成功的Lisp:如何理解和使用Common Lisp
  • COMMON Lisp中的面向对象编程:CLOS程序员指南
  • 元对象协议的艺术
  • 小口Lisp
  • 使用通用Lisp进行人工智能的要素
  • 放任Lambda

关于Lisp的许多最重要和最有影响力的书都是在1970年代和1980年代写的,现在已经绝版并且很难找到。这些书中有几本已在线提供,您可以在下面找到它们的链接.

在线资源

具有历史意义

Lisp是一种历史悠久的有趣语言。它的发展与人工智能和机器学习的发展紧密相关。它也是常用的最独特的语言之一,其语法和内部逻辑与大多数其他语言完全不同.

这些差异是计算机科学界正在进行的有关计算本质和编程正确语法的辩论的一部分.

今天花时间学习Common Lisp的任何人都应该以探索该语言的一些历史为重点.

  • 符号表达式的递归函数及其机器计算—约翰·麦卡锡(John McCarthy)于1960年撰写。这是描述将成为Lisp的原始论文.
  • 计算数学理论的基础-麦卡锡(McCarthy)于1961年撰写的论文,探讨了“递归函数”论文中的许多思想。另请参阅随附论文《迈向计算数学科学》.
  • Lisp-有关其过去和未来的注释-McCarthy在Lisp发布20年后的1980年撰写了这篇文章.
  • 视频:人工智能

约翰·麦卡锡(John McCarthy,1927-2011年)是斯坦福大学计算机科学的长期教授。他的主页上有很多关于AI,Lisp,理论计算机科学和相关主题的有趣文章.

学习Lisp

关于Common Lisp的在线教程并不多,因为像PHP或Ruby这样的更流行的语言也没有。但是,有很多关于Lisp的书籍已经作为在线版本发行。.

其中许多是在1970年代和80年代写的,尽管当然也有一些当代资源.

  • 在Lisp上-Paul Graham撰写的优秀著作的在线版本.
  • Common Lisp:对符号计算的温和介绍
  • Lisp in Small Parts —一系列简短教程
  • 实用Common Lisp-同名经典入门书的完整在线版本.
  • Lisp的土地-一个有趣,独特的网站和书籍,教人们如何使用Lisp.
  • Learn Common Lisp-在Y分钟内学习X,其中X = Common Lisp.
  • ELM-ART Lisp课程—在自适应远程指导者上学习将Lisp与情景学习器模型一起使用
  • Lisp快速入门
  • LispTutor Jr
  • 在Lisp中投放Spels
  • Common Lisp:一种交互式方法
  • Lisp初学者风格提示
  • Pascal Costanza的Lisp备受关注的指南

必读:

  • 普通Lisp生态系统的状态.
Lisp参考和文档

与大多数其他语言相比,如果您开始使用Lisp,就会发现自己需要经常查阅参考资料。以下是一些在线上更常用的Common Lisp参考作品.

  • 普通Lisp Wikibook
  • 通用Lisp HyperSpec
  • Cliki:Common Lisp Wiki
  • LispWorks通用Lisp文档
  • 普通Lisp食谱
  • Google Common Lisp样式指南-如何以Google编写Common Lisp的方式编写Common Lisp。 (您甚至不知道Google在编写Common Lisp吗?)
  • 普通口头语言
Lisp编程中的特殊主题

Lisp本身是一种相当专业的语言。以下是一些有关Common Lisp中特殊问题的资源.

  • 人工智能程序设计范例:Common Lisp中的案例研究—另请参阅本书.
  • 通用Lisp对象系统
Lisp工具

如果您想使用Common Lisp完成任何重要工作,则需要更大的语言支持生态系统-库,插件,开发工具,框架.

这是Lispers用于完成任务的一些最受欢迎的工具.

  • ACL2 —适用于通用Lisp的计算逻辑
  • Common Lisp中的Reader宏-Reader宏使您可以在Lisp之上创建全新的语法
  • Quicklisp-Common Lisp的图书馆经理
  • Clack — Common Lisp的Web应用程序环境。在其之上构建了几个Web应用程序框架:
    • 穴居人
    • 宁格尔
    • 琉森
  • Parenscript —将Common Lisp转换为Javascript
  • jscl-JavaScript编译器的另一个常见Lisp
  • Roswell — Common Lisp的命令行安装程序
  • CommonQT — QtTools的Common Lisp扩展,提供GUI解决方案.
  • CLML —通用Lisp机器学习库
  • MGL — Anoth机器学习库
  • Antik-库提供科学和工程计算的工具
  • 起重机—常见Lisp的ORM.
  • cl-dbi —数据库抽象层
  • CEPL —图形库。 (查看他们广泛的视频教程系列。)
  • 铁包—密码学工具.
  • SLIME — Common Lisp的标准IDE.
Lisp文化与社区

Lisp比其他任何语言都有自己的文化-独特的知识,幽默和传统。其中一些可以追溯到大学计算机科学系的根源.

此外,其中一些与早期极客黑客文化有关,并且某些原因是该语言本身的特性及其通常用于的应用程序类型的结果.

如果您真的想了解Lisp,那么您不仅可以学习语言,还必须学习文化,并成为这个(奇怪而奇妙的)社区的一部分.

  • Lisp论坛
  • Lisp的心理现实讲习班
  • 关于Lisp的行情
  • 与艾伦·凯的对话
  • 永恒之火
  • Lisp幽默
  • 普通Lisp电影
  • Lisp音乐录影带之乡
  • Lisp星球
  • Lisp会议-还可以在Twitter上查看[@lispmeetings](https://twitter.com/lispmeetings)

必读:

  • 戈德尔(Gödel),埃舍尔(Escher),巴赫(Bach):永恒的金色辫子,作者道格拉斯·R·霍夫施塔特(Douglas R. Hofstadter)—这本书与Lisp没有直接关系(尽管确实谈论了一点)。但这对于Lisp所处的不同领域的人们来说是极为重要的文化和智力试金石:人工智能,机器学习,数学逻辑和递归。这本书将改变您的思维方式,最终您会像使用Lisp的人那样思考.
常见的Lisp实现

Lisp是一个想法,Common Lisp是一种语言-它不是特定的技术。以下是Common Lisp的一些比较流行的实现.

  • Clisp — GNU Clisp,ANSI Common Lisp的实现
  • GCL —另一个常见的Lisp实现
  • CMUCL —高性能,免费的Common Lisp实现。包含Hemlock编辑器.
  • 快板CL
  • Clozure普通Lisp
  • 钢铁银行普通口齿不清
影片

通过观看了解Lisp。这些视频涵盖了从基础教程到Lisp逻辑和哲学的深入探索的整个过程。.

  • 像Lisp程序员一样思考
  • 实用的Lisp — Google技术讲座
  • Lisp简介
  • Lisp-Google技术讲座
  • Lisp常见问题:为什么宏很棒
  • Common Lisp –如何开始新项目
  • 常见的Lisp互动游戏开发
  • CommonLisp中的LiveCoding
  • Patrick Stein在Vimeo上
  • Baggers的通用Lisp教程

相关语言和方言

Lisp不是一种语言,而是一门语言-一种有关如何进行计算机编程的想法。通用Lisp是Lisp最受欢迎的实现,但还有其他几种实现.

Lisp的主要方言是:

  • Scheme — Scheme是Common Lisp的主要“竞争对手”.
  • Clojure — Clojure是一种Lisp方言,目前越来越流行。它被构建为在Java虚拟机中运行.

Lisp常见问题解答

什么是Lisp?

Lisp是一门计算机编程语言家族,最早于1950年代后期开发。 Lisp代表 处理,一个名称,指的是语言使用列表作为其主要数据结构以及编程语法的事实.

什么是普通Lisp?

Common Lisp是Lisp的一种方言,它是1980年代初开发的,旨在创建一个单一的(通用)Lisp版本。它是该语言的两个最受欢迎的版本之一(以及Scheme).

Lisp的用途是什么?

Lisp可以用于任何类型的应用程序,但对于人工智能,机器学习以及其他需要递归逻辑的高级编程形式特别感兴趣.

为什么Lisp在人工智能中很受欢迎?

至少有两个原因.

首先,Lisp的主要数据结构(列表)也是其编程语法的结构。即,数据和关于数据的指令采用相同的形式。 (这称为谐音。)

这意味着Lisp可用于分析自身或修改自身。人工智能领域的许多专家以及相关领域的许多哲学家和思想家都认为这种类型的递归自省是真正的自我意识智能的基础。而且,程序能够根据输入进行更改的能力是机器学习的本质.

Lisp在AI中流行的第二个原因是该语言的控制语法与它背后的计算逻辑非常相似。与其他语言相比,这可以使Lisp程序员更深入地了解计算机如何真正解释程序的逻辑和语法。.

Clojure

Clojure是一种相对较新的(2007)编程语言。它是Lisp的方言,旨在在Java虚拟机上运行.

什么是Java虚拟机?

JVM是一台虚拟计算机,可编译并运行Java和其他语言。 JVM是一种想法,而不是特定的软件-JVM最受欢迎的实现之一是Oracle的HotSpot.

Java和JVM的思想是,您可以用Java(或其他受支持的语言)编写程序,然后为JVM进行编译。然后,您可以在运行JVM的任何计算机上运行它。这使得它非常便携-您可以编写一次代码,然后在任何地方运行.

Clojure:JVM上的Lisp

Java无处不在,这意味着Java虚拟机无处不在。创建在JVM上运行的Lisp版本可以在任何地方运行Lisp。这是创建Clojure的主要动机,也是学习该语言的重要原因.

另一个好处是Clojure通过JVM提供了对使用Java编写的无数工具和第三方库的访问。这为Clojure提供了一个开发生态系统,该生态系统比以前任何Lisp方言都更强大.

Clojure教程

  • Clojure入门和Clojure简介对语言进行了清晰,快速的介绍.
  • Clojure编程是关于该语言的广泛的开源Wikibook.
  • 在Y分钟内学习X,其中X = clojure是该语言的不错的入门指南,对于具有其他语言的现有编程技能的人来说.
  • Clojure — JVM的函数式编程是针对Java开发人员的详细教程.
  • Clojure语言是由25部分组成的视频教程系列,介绍该语言.
  • Clojure Distilled是必读的教程/文章,不仅涵盖该语言的语法和词汇,还涵盖其背后的哲学;它试图提炼Clojure开发人员如何思考问题,并探索一种解决问题的方法,这可能对于其他语言的开发人员来说是新的.
其他学习Clojure的资源
  • 试试Cloclore,它是在线Clojure解释器,可以让您在浏览器中获得一些Clojure的经验,然后再在本地安装它.
  • ClojureTV提供有关各种Clojure开发主题的视频教程和现场讲座.
  • 4clojure是一个交互式学习网站,其中包含Clojure中的编程练习.
  • Full Disclojure是另一个包含大量Clojure教程视频的视频频道.
  • 《 Clojure新手指南》是有用的资源,可将新的Clojure开发人员指向构成Clojure生态系统的所有基本工具和资源。.

Clojure参考资料

  • Clojure样式指南是社区编写的最佳实践指南,用于编写清晰,可维护的Clojure代码.
  • ClojureDocs和Grimoire都是官方文档的非官方伴侣,提供了来自社区的评论和示例.
  • Clojure备忘单是您需要记住的所有小事情的快速参考页.

社区与持续学习

  • Clojure Subreddit是一个非常活跃的论坛,用于提问和与Clojure社区进行互动。
  • Clojure Google网上论坛和邮件列表是一个提出问题并获得Clojure开发支持的好地方;
  • Disclojure是Clojure新闻和事件的热门网站;
  • Planet Clojure汇总了Clojure顶级博客中最重要的文章.

关于Clojure的书

关于Clojure的书籍很多。以下是Clojure社区一次又一次推荐的建议:

  • Daniel Higginbotham撰写的Clovere for the Brave and True(2015),是该语言的必读指南。它也可以免费在线阅读,并构成充斥Clojure资源的出色网站的基础.
  • 范德哈特(VanderHart)和诺伊费尔德(Neufeld)撰写的《 Clojure Cookbook》(2014年)是一份众包的Clojure食谱和创意摘要。可在GitHub上以印刷书籍和开源项目的形式获得.
  • 实用书架上有几本关于Clojure的优秀书籍:
    • 《编程Clojure》(2012年),由Halloway和Bedra撰写;
    • 掌握Clojure宏:编写更清洁,更快,更聪明的代码(2014),作者:科林·琼斯(Colin Jones);
    • 应用的Clojure:从实践到从业者(2015),Vandgrift和Miller;
    • 使用Clojure进行Web开发:使用更少的代码构建防弹Web应用程序(2016年),作者Dmitri Sotnikov.
  • 范德哈特(VanderHart)和塞拉(Sierra)编写的《实用Clojure》(2010)和实用书架的《编程Clojure》(如上所述)是有关Clojure语言的前两本书。实用的书包含更多更好的代码示例,而Apress的书则提供了更连贯的解释。这两本书为大多数Clojure开发人员如何思考该语言定下了基调,因此,任何认真学习该语言的人都应该阅读该书。.
  • Emerick,Carper和Grand撰写的Clojure Programming(2012)是对该语言的非常清晰的介绍,特别是对于那些来自面向Web的编程和脚本语言(如PHP和Python)的人.
  • 卡林·迈耶(Carin Meier)撰写的Living Clojure(2015)是一本非常实用的语言指南,其有益的假设是读者通常会理解编程。本书包括针对自学或企业培训的结构化学习计划.

我应该学习Clojure吗?

大概.

每个开发人员都应该学习Lisp,这是公认的事实,即使您可能不会使用它。但是现在,Lisp的功能已经与Java的无处不在结合在一起了,它的语言既好学又非常有用.

优秀的Clojure开发人员倍受追捧并获得了丰厚的报酬,并且该语言越来越受欢迎.

如果您正在寻找使自己与其他开发人员区分开的编程技能,那么Clojure是添加到工具包和简历中的最佳工具之一.

方案

如果您年龄较大,并且在高中或大学参加了计算机科学入门课程,那么您很可能在该课程中使用了良好的老式Scheme编程语言。.

计划简史

为了更好地了解Scheme的历史,我们必须研究现代计算的早期阶段。 Scheme的发展受到两个较早的,非常不同的前辈的影响:Lisp和ALGOL编程语言.

Lisp由麻省理工学院的John McCarthy于1958年创建。 Scheme是使用常规语义和语法从Lisp派生的。此外,Scheme从ALGOL借来的。它是由欧美计算机科学家委员会在1958年于苏黎世联邦理工学院举行的一次会议上开发的。方案使用了其块结构和词汇范围.

1973年,麻省理工学院的Guy L Steele和Gerald Jay Sussman开始尝试在Lambda演算中实现Carl Hewitt的Actor模型。他们通过在MacLisp中编写一个微型的Lisp解释器并添加了用于创建actor和发送消息的机制来做到这一点。在工作中,他们意识到自己创建了一个很小而功能强大的Lisp方言,并将其命名为Scheme.

在2003年,Scheme研讨会开始了Scheme的新标准化过程,并最终在2006年发布了已批准的R6RS标准。最近一次稳定发布的Scheme是从2013年以来已批准R7RS标准。.

方案特点

Scheme是一种主要的函数式编程语言,以列表作为主要数据结构,并支持一流的功能。它是一种简单,简约且易于实现的编程语言。这种极简主义的哲学思想导致计划的实际实施方案之间存在很大分歧,在某种程度上,计划指导委员会称其为“世界上最不可移植的编程语言”和“一种方言族”,而不是一种语言。与早期Lisp具有动态作用域的派生方法不同,Scheme在词法范围内(ALGOL的影响).

在Scheme中,使用以下结构实现块: , 让*莱特雷克. 该块结构也继承自ALGOL。迭代构造 在Scheme中使用,并提供了使用尾递归进行迭代的支持。 Scheme中的延续是一流的对象,它们得到了 当前通话 计划程序(也称为 通话/抄送)。在Scheme中,所有数据和过程共享一个公共名称空间,并且输入和输出基于 港口 数据类型.

数值塔是在Scheme中指定和实现的一组复杂而合理的数值数据类型。计划通过以下方式支持延迟评估: 延迟 形式和 程序.

计划实施和用途

由于其简单性和极简主义,Scheme库在编程语言设计师,教育者和业余爱好者中非常受欢迎。这导致了Scheme的许多不同实现和方言。大多数Scheme实现都支持传统的Lisp风格的read-eval-print循环,有些还将Scheme程序编译为可执行二进制文件.

Scheme实现的简单性也使其成为向大型系统添加脚本功能的流行选择。此外,Scheme的JScheme和Kawa实现提供与Java类的集成.

计划主要用于教育。在许多计算机科学和程序设计入门课程中,演示计算机编程的基础知识。 Scheme的其他显着用途包括适用于Android的Google App inventor,GIMP图形编辑器,文档样式语义和规范语言(DSSSL)等.

学习计划

由于Scheme的广泛教育用途,因此学习它和寻找学习资源不会造成问题。有很多可用的学习资源,包括免费和商业的,我们选择了其中的一些资源.

计划课程和资源

由于Scheme是一种简约且精简的编程语言,因此相对容易掌握。通过这些课程和教程,您可能很快就能在Scheme中开始编程.

  • 计算机程序的结构和解释是麻省理工学院的入门课程6.001,其中包含许多有用的Scheme资源,包括视频讲座,在线教科书,项目,成绩单和精选的讲义.
  • DrScheme是用于编写,调试和分析Scheme程序的集成开发环境(IDE),也用于教育.
  • Pilo计划视觉工具(PVTS)是带有可视化工具的基本Scheme解释器实现。它是用Java编写的,并且解释器功能非常有限,其唯一目的是以图形方式显示Scheme代码作为学习辅助工具.
  • Schemers.org提供了很多有关Scheme的文档和介绍性文字.
计划书

提供了许多计划书,其中许多是免费的,可用于教育课程。如果您刚开始学习Scheme编程语言,这些内容将非常有用。.

  • Abelson,Sussman和Sussman撰写的《计算机程序的结构和解释》是一本非常出色的计算机科学书籍,用于麻省理工学院的入门课程。这是Lisp and Scheme世界的圣经之一,可从MIT Press免费在线获得。.
  • 如何设计程序:Felleisen,Findler,Flatt和Krishnamurthi撰写的《计算和编程简介》为编程逻辑提供了很好的介绍。它是免费的并且可以在线获得,由麻省理工学院出版社出版.
  • R Kent Dybvig撰写的Scheme Programming Language,第四版,旨在提供Scheme编程语言的介绍,而不是一般的编程介绍。它是免费的并且可以在线获得,由麻省理工学院出版社出版.
  • 弗里德曼(Friedman)和费莱森(Felleisen)撰写的《小计划者》(第4版)将计算作为算术和代数的扩展进行介绍,并将程序作为递归函数进行了介绍。这本书不是免费的.
  • 弗里德曼(Friedman)和费莱森(Felleisen)的《经验丰富的计划者》(The Seasoned Schemer)也向读者介绍了计算的其他方面:作为值的功能,状态变化和特殊情况。这本书不是免费的.
  • 如何使用方案:Felleisen,Findler,Flatt,Krishnamurthi,Steckler撰写的使用PLT Scheme编写脚本和程序,Steckler将向您介绍一些相当基本的概念,例如文件输入和输出,以及一些更高级的东西,例如简单的GUI设计和Web脚本编写方案的各个方面。它可以在线免费获得.

计划适合您吗?

计划不仅是学习编程的好方法,还是开始学习计算机科学的好方法。这些原因应该使您朝正确的方向前进.

Lisp应用程序实现

Lisp非常有用,以至于经常被用作应用程序的脚本语言。最大的两个是文本编辑器Emacs和计算机辅助设计(CAD)应用程序AutoCAD。我们将在下面介绍它们.

AutoLISP

如果您使用计算机辅助设计(CAD)软件,例如AutoCAD,Bricscad或IntelliCAD,则有时在您的CAD环境中可能需要其他自定义或自动化功能.

这就是AutoLISP介入的地方。AutoLISP是一种简单,轻量级的编程语言,专门用于CAD软件。.

AutoLISP的简要历史

AutoLISP是Lisp编程语言的一种方言,经过定制和精简后可以在AutoCAD环境中使用.

Lisp是可追溯至1958年的一系列编程语言。Lisp的名称源自“ List Processor”,而链表是Lisp的主要数据结构之一。.

AutoLISP于1986年在Autodesk的AutoCAD 2.18版中首次引入,并且在新版本中得到了不断改进,直到1995年发布13版,当时Autodesk停止了AutoLISP的开发,转而支持更现代的开发环境,例如VBA或.NET。.

尽管如此,AutoLISP仍然是许多AutoCAD用户的主要自定义语言.

1997年,Autodesk发布了AutoCAD 14,并引入了Visual Lisp作为AutoCAD的商业附加组件。 Visual Lisp包括集成开发环境(IDE),调试器和编译器以及ActiveX支持.

随着1999年AutoCAD 2000的发布,Visual Lisp被并入AutoCAD以替代AutoLISP。从那时起,Autodesk就停止了对Visual Lisp的重大增强,以便专注于VBA,.NET和C++.

到目前为止,AutoCAD至今仍支持Visual Lisp和AutoLISP,而自2014年1月31日起,不再支持7.1之前的VBA版本.

由于庞大的用户群以及AutoLISP中可用的许多实用程序和应用程序,许多其他CAD软件供应商也在他们自己的产品中采用了对AutoLISP的支持。.

人们为什么仍然使用AutoLISP而不是C++?

如果您使用完整版的Autodesk AutoCAD,则AutoLISP编译器已包含在AutoCAD中并可以使用。板上还有一个不错的IDE-Visual Lisp。请注意,AutoCAD LT版本不具有对AutoLISP的内置支持.

大多数AutoCAD用户或使用类似CAD解决方案的用户都不熟悉编程和编程语言,因此学习C ++创建简单的程序或AutoCAD中的自动化功能不切实际。.

AutoLISP比C ++或Visual Basic简单,精简,并且易于使用和学习,并且开始编程所需的一切已包含在AutoCAD中.

用AutoLISP编写的程序和实用程序可从AutoCAD轻松访问和执行。这些是使AutoLISP成为用户自定义AutoCAD的最佳选择的主要原因.

AutoLISP功能

AutoLISP是一种解释性语言,未经编译,因此可以将其存储在ASCII文本文件中,进行加载,然后直接在AutoCAD中执行.

您在AutoCAD中手动执行的几乎所有操作都可以使用AutoLISP自动执行.

AutoLISP具有丰富的功能集,可用于在AutoCAD中执行任何活动,例如用于变量操纵,决策控制,循环,算术运算,错误处理和函数处理的常规编程功能。.

它还在许多领域具有专门功能,例如:几何,显示控制,查询和命令,用户输入以及对象处理。.

AutoLISP还具有对话控制语言(Dialog Control Language),这是一种内置的GUI迷你语言,用于在AutoCAD中使用自动布局创建模式对话框。所有可以运行AutoCAD的平台也都支持AutoLISP.

学习AutoLISP

有某些因素可以使学习AutoLISP更容易.

如果您是经验丰富的AutoCAD用户,则对AutoLISP的学习将更加轻松。 AutoLISP本质上是控制AutoCAD的一种方式,因此您对AutoCAD的了解越深,就越了解自动进行控制需要做什么。.

AutoLISP教程

AutoLISP是一种非常简单的语言,在AutoCAD内置的不同应用程序编程接口(API)中可能是效率最高的。通过这些教程,您可能会立即准备编写自己的有用程序.

  • AfraLISP拥有大量的AutoLISP免费学习教程,以及面向初学者,中级和高级用户的资源.
  • Autodesk的官方《 AutoLISP开发人员指南》提供了有关使用AutoLISP编程语言的主要主题和工作流的逐步概述。他们的官方AutoLISP功能参考也很有趣,在AutoLISP中编程时一定会派上用场.
  • 在80分钟内精通AutoLISP是Augi CAD Camp 2005的Power Point演示文稿,可免费下载。它涵盖了AutoLISP的基础知识,并且适合中级AutoCAD用户.
  • CADTutor.net上的AutoLISP快速入门针对希望开始学习AutoLISP的AutoCAD用户.
  • 您的第一个AutoLISP程序:Zoom to Origin是一个简短的教程,显示了在AutoCAD的Visual Lisp Editor中编写简短的AutoLISP程序的基础.
  • Lee Mac编程提供了有关AutoLISP的有趣资源,例如教程和许多可下载和学习的功能性AutoLISP程序.
AutoLISP书籍

有关AutoLISP及其在AutoCAD中的用法的书籍很多,可广泛获得。您可能会发现其中一些书对学习如何使用AutoLISP编程非常有帮助,尽管我们建议您先阅读在线教程。.

  • AutoLISP编程:Rawis和Hagen的原理和技术在掌握AutoLISP编程语言方面提供了实用且易于遵循的指导.
  • AutoCAD平台定制:Lee Ambrosius的用户界面,AutoLISP,VBA和Beyond是简化和个性化AutoCAD平台的综合指南。 AutoLISP和VBA编程语言提供了许多自定义选项,并且本书为将其应用于AutoCAD,Civil 3D,Plant 3D和其他基于Autodesk AutoCAD平台的程序提供了专家指导。.
  • AutoCAD专家的Reinaldo Togores的Visual LISP:从头开始介绍Lisp编程技术,包括Visual Lisp集成开发环境的使用.

您准备好使用AutoLISP了吗?

即使AutoLISP源自非常古老的编程语言Lisp,AutoLISP仍然是AutoCAD用户非常有价值的工具.

AutoLISP仍然是AutoCAD和其他具有AutoLISP支持的CAD软件中自定义和自动化的首选工具.

埃马克斯·利斯普(Emacs Lisp)

如果使用GNU Emacs或任何其他类似的Emacs文本编辑器,则可能听说过Emacs Lisp。 Emacs Lisp是用于开发和编码GNU Emacs文本编辑器的大多数编辑功能的编程语言。 Emacs Lisp也称为Elsip.

本质上,Emacs Lisp用于自定义和扩展GNU Emacs文本编辑器的功能.

Emacs Lisp的简史

Emacs Lisp是GNU Emacs和XEmacs文本编辑器中使用的Lisp编程语言的极简方言。 Lisp代表“列表处理器”,并代表可追溯至1958年的一系列编程语言.

GNU项目的创始人Richard Stallman创建了GNU Emacs文本编辑器.

GNU Emacs 13版于1985年首次发布,引入了Emacs Lisp作为其自身扩展语言的使用。 Emacs Lisp在很大程度上受到Lisp编程语言的Maclisp方言的启发.

GNU Emacs的最新稳定版本为24.5版,于2015年4月发布。.

Emacs Lisp是GNU Emacs不可或缺的一部分,它可以在GNU Emacs支持的所有平台上运行-GNU,GNU / Linux,FreeBSD,NetBSD,OpenBSD,Mac OS X,Microsoft Windows和Solaris.

Emacs Lisp和GNU Emacs都是开源且免费的。它们是根据GNU通用公共许可证发布的,其源代码可免费用于检查,修改和重新分发。.

谁使用Emacs Lisp和GNU Emacs?

借助当今现代的集成开发环境(IDE),乍一看,在像GNU Emacs这样的专用文本编辑器中编写代码似乎很奇怪.

但是,对于经验丰富的用户,GNU Emacs具有许多现代IDE所没有的许多强大的代码编辑功能。.

GNU Emacs被描述为可扩展的,可定制的,自文档的实时显示编辑器,几乎所有这些强大的功能都来自其集成的Emacs Lisp解释器.

现代IDE集中在GUI和视觉元素上,并且主要由鼠标控制。与它们不同,GNU Emacs专注于键盘输入和强大的文本编辑功能,因此与大多数现代IDE相比,它更适合编写纯代码的程序员。.

GNU Emacs支持每种流行的编程语言。此外,Emacs Lisp可以作为扩展和自定义GNU Emacs的强大工具加入.

Emacs Lisp功能

由于Emacs Lisp编程语言是专为在编辑器中使用而设计的,因此它提供了用于解析和扫描文本,处理子流程,缓冲区,显示,文件等的特殊功能。编辑命令是可以从Emacs Lisp程序调用的函数.

Emacs Lisp功能显示了与Maclisp方言的密切关系。 Emacs Lisp默认情况下使用动态范围,同时支持命令式和函数式编程方法,着重于在强大的文本编辑器中提供特定于其使用的数据结构和功能.

从版本24开始,可以选择使用静态范围。可以通过设置变量来激活它。 词汇绑定. 请注意,Emacs Lisp不支持尾部调用优化,因此尾部递归会导致堆栈溢出错误.

Emacs Lisp也可以用作GNU Emacs的脚本语言,可以从命令行或从可执行文件中调用,并且该程序具有所有编辑功能.

当GNU Emacs用户界面以批处理模式运行且使用Emacs Lisp进行脚本编写时,不显示用户界面,因此它的行为更像是标准的Unix工具。.

您的开发环境

要开始使用Emacs Lisp,您将需要安装GNU Emacs文本编辑器。这是一个非常简单的过程.

只需转到Gnu.org Emacs下载页面,然后按照说明在系统上下载和安装GNU Emacs。 GNU Emacs支持以下平台:GNU,GNU / Linux,FreeBSD,NetBSD,OpenBSD,Mac OS X,Microsoft Windows和Solaris.

学习Emacs Lisp

当然,如果您有以前的编程经验,尤其是使用从Lisp派生的某些功能编程语言时,学习Emacs Lisp将会更加容易。.

也欢迎一般的编程经验,因为资深的编码人员往往会完全了解他们的文本/代码编辑器.

Emacs Lisp教程和资源

Emacs Lisp是一种简约且易于学习的编程语言,但是由于其相对有限的利基吸引力,因此在线资源并不多。我们选择了一些教程和学习资源,如果您刚开始使用Emacs Lisp,这些教程和学习资源将非常有用:

  • 来自Gnu.org的Emacs Lisp中的编程简介是针对没有以前编程经验的新用户的.
  • 《 GNU Emacs Lisp参考手册》是Emacs Lisp的完整描述和参考。本手册假定您习惯使用Emacs进行编辑.
  • Elisp Cookbook包含许多代码示例,这些示例演示了基本的Emacs Lisp编程操作.
  • Emacs Lisp Wiki包含指向良好资源的链接,可帮助您开始使用Emacs Lisp编程.
Emacs Lisp书籍

这里也有许多Emacs Lisp书籍。其中一些可能非常有用,但是我们仍然建议您免费尝试在线教程和资源。如果您需要更多资源,可以购买一本书或两本书.

  • Robert J Chassell撰写的Emacs Lisp编程简介是面向非程序员的基础教程,向他们展示如何使用Emacs Lisp编程语言自定义GNU Emacs。.
  • Emacs Lisp-Robert J Chassell的简介旨在帮助您开始使用Emacs Lisp,并指导您学习编程的基本原理.
  • 鲍勃·格里克斯坦(Bob Glickstein)编写的GNU Emacs扩展:使用Lisp进行编辑器定制和创建,将通过实际示例向您展示从简单定制到Emacs Lisp中广泛的mod的所有内容.

如果使用Emacs,则需要Emacs Lisp

GNU Emacs被设计为文本编辑器,支持使用Emacs Lisp进行自定义.

但是,由于Emacs Lisp编程语言提供的强大功能和可扩展性,GNU Emacs成为了几乎成熟的IDE。.

这是一种功能强大但高度专业化的编程语言。这不是一般开发人员需要掌握的东西,但是在某些细分应用中,Emacs Lisp仍被广泛使用,并且这种情况不太可能很快改变。.

结论

我们几乎没有刮擦Lisp世界的表面。但是正如您所看到的,这是一种非常有用的语言,无论您是构建应用程序还是只是试图使文本编辑更容易.

其他有趣的东西

我们有更多与编码和开发有关的指南,教程和信息图:

  • F#编程:了解.NET框架中的函数式编程.
  • Erlang编程简介和资源:一种用于创建并行代码的早期功能语言.
  • Java:简介,学习方法和资源:查看有关成为Java程序员的详细指南.
您应该学习什么代码?

对应该学习哪种编程语言感到困惑?查看我们的信息图,您应该学习什么代码?

它不仅讨论了语言的不同方面,还回答了一些重要问题,例如:“我将以编程为生赚多少钱?”

您应该学习什么代码?
您应该学习什么代码?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map