首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >学习内容: Scheme与Lisp

学习内容: Scheme与Lisp
EN

Stack Overflow用户
提问于 2010-12-16 21:01:16
回答 3查看 5.2K关注 0票数 1

方案vs Lisp?学习什么,我需要函数式编程的语言。

EN

回答 3

Stack Overflow用户

发布于 2010-12-17 23:58:38

我认为,当涉及到名称和约定时,客观上可以说Scheme更加一致和对称。简单的例子: True和false是#t和#f,而不是Lisp中的t和nil。像这样的细节会破坏交易吗?当然不是。但是在早期,你需要记住的奇怪的异常越少,你就越不会从重要的事情上分心。

尽管您可以在Scheme中使用递归,但您也可以做一些看起来不像递归的事情--比如一直流行的命名let习惯用法,每个人似乎都将其命名为“loop”:(let loop () ...) --甚至是显式的循环构造。

像CL一样,Scheme不会强迫你是函数式的或不可变的。但是,如果你有一个命令式的背景,那么推动并最终让它“点击”你写东西的方式,而不是重新给变量赋值,这是有价值的。然而,如果你不想要灯泡体验,请随意设置!一切势在必行。

我建议你从Scheme开始,更具体地说是球拍(以前的"PLT Scheme")。它附带了一个很棒的IDE,非常好的文档,以及一个非常有用的邮件列表。它有一些库,让你可以编写真实世界的程序,也可以阅读像SICP或HtDP这样的好书。

票数 6
EN

Stack Overflow用户

发布于 2010-12-16 21:03:11

已经在SO上回答了:Comparison Lisp vs Scheme

来自Vinko Vrsalovic的最佳答案

摘自Practical Common Lisp

如果你过去使用过Lisp,你可能对什么是" Lisp“有一些想法,这与Common Lisp没有什么关系。虽然Common Lisp取代了它的大部分派生方言,但它并不是仅存的Lisp方言,根据您何时何地接触到Lisp,您很可能已经学会了这些其他方言中的一种。

除了Common Lisp之外,仍然拥有活跃用户社区的一种通用Lisp方言是Scheme。Common Lisp借鉴了Scheme的一些重要特性,但从未打算取代它。

Scheme最初是在麻省理工学院设计的,在那里它很快就被用作本科生计算机科学课程的教学语言,Scheme的目标一直是与Common Lisp不同的语言利基。特别是,Scheme的设计者一直专注于保持核心语言尽可能地小和简单。这对教学语言和编程语言研究人员都有明显的好处,他们喜欢能够正式地证明语言的东西。

它还具有使标准中指定的整个语言相对容易理解的好处。但是,它这样做的代价是省略了许多在Common Lisp中标准化的有用功能。个别的Scheme实现可能会以特定于实现的方式提供这些特性,但是在标准中省略这些特性会使编写可移植的Scheme代码比编写可移植的Common Lisp代码更困难。

Scheme还比Common Lisp更强调函数式编程风格和递归的使用。如果你在大学里学习过Lisp,并且给人的印象是它只是一种学术语言,没有实际应用程序,那么你很有可能学会了Scheme。这并不是说这是Scheme的一个特别公平的特征,但它更不适用于Common Lisp,它被明确地设计为一种现实世界的工程语言,而不是一种理论上的“纯”语言。

如果你已经学习了Scheme,你也应该意识到Scheme和Common Lisp之间的一些细微差别可能会让你犯错。这些差异也是共同Lisp和Scheme社区中头脑发热的人之间几场常年宗教战争的基础。我将尝试指出一些更重要的不同之处。

另外两种仍在广泛使用的Lisp方言是Elisp和Autolisp,Elisp是Emacs编辑器的扩展语言,Autolisp是Autodesk的AutoCAD计算机辅助设计工具的扩展语言。尽管Elisp和Autolisp的代码行可能比Lisp的任何其他方言都多,但这两种语言都不能在宿主应用程序之外使用,而且与Scheme或Common Lisp相比,这两种语言都是相当老式的Lisp。如果你使用过这些方言中的一种,准备跳上Lisp时光机,向前跳几十年。

票数 4
EN

Stack Overflow用户

发布于 2010-12-16 21:20:27

我建议使用Scheme。它相当简单,而且是纯功能的。CL很大,很复杂,而且很难学,它支持多种范式,如果你想要一种完全用于函数式编程的语言,你就不会使用它的大部分功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4461003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档