学习LISP的最佳方法是什么?

时间:2008-12-29 20:36:02

标签: lisp scheme common-lisp

我已经用Python,PHP,Java和C编程了几年或几年,我刚读完黑客和画家,所以我很乐意尝试一下LISP!

我理解它与我所知道的完全不同,并且这并不容易。我想(如果我错了,请纠正我)LISP的社区和发展方式会减少。所以我的问题是:学习LISP的最佳方法是什么?

我不介意买书或投入一些时间。我只是不希望它被浪费。

“最终”的想法是使用LISP进行网页开发,我知道这并不常见......我知道在选择第一本书或教程之前计划我的学习并花大量时间在某事上是好的这可能不是最好的方式!

谢谢大家的答案!

编辑我读了Practical Common Lisp并且:...很长,很难,很有趣并且肯定让我在Lisp中滚动,之后我读了这个小阴谋,它很简短,很有趣对我的整体编程非常有用。所以我的建议是首先阅读小阴谋,然后(它需要几个小时而且值得)如果你决定使用lisp(或方案或任何方言)不是你想要的东西,你仍然会非常有趣关于递归的新思路!

23 个答案:

答案 0 :(得分:110)

尝试阅读Peter Seibel撰写的Practical Common Lisp

答案 1 :(得分:75)

我个人最喜欢的是Abelson&苏斯曼Structure and Interpretation of Computer Programs。 它使用Scheme,这是一个很好的,干净的Lisp方言。

如果你喜欢更实用的方法,也许你应该选择一些用于网页设计的Lisp框架 (我不知道这样的野兽是否存在)并直接进入。

答案 2 :(得分:54)

您可能希望从The Little Schemer作为热身开始。这不是一本关于编写生产Lisp程序的实用书,但它是一本很好的书,用于学习如何在Lisp中思考

答案 3 :(得分:41)

麻省理工学院以DIVX和MPEG格式提供了完整的LISP课程。我强烈推荐它。

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

答案 4 :(得分:31)

现在有一本名为'Land of LISP'的书,通过编写80年代风格的文本游戏来教授LISP编程。我现在正在阅读它,而且写得非常好,不会太认真,我喜欢。

答案 5 :(得分:22)

这里有几种选择。首先,Scheme和Common Lisp在相当深的方式(如范围界定)方面有很大不同;你应该选择一个开头并坚持一段时间。我是Common Lisp粉丝,但这可能是那些vi-vs-EMACS宗教问题之一。

对于Scheme,请访问Kent Dybvig的Scheme Programming Language,然后是SICP。

对于Common Lisp,以及Practical Common Lisp,我建议David Lamkins的Successful Lisp.成功的Lisp是also available online for free

之后,请查看Queinnec的Lisp in Small Pieces和Norvig的Lisp in AI book

Marty Hall在约翰霍普金斯大学有a nice list

更新了:我并不是说永远坚持下去,只是试图同时学习这两者会让人感到困惑。

答案 6 :(得分:19)

拿起康拉德巴斯基的Land of Lisp。这是一个有趣的使用漫画和游戏的Lisp编程介绍。

答案 7 :(得分:17)

我建议Project Euler作为小口大小问题的绝佳来源,您可以用它来教自己任何新的编程语言。

答案 8 :(得分:9)

Paul Graham的Ansi Common Lisp是一本好书。

我认为它可能已经绝版,所以最好通过亚马逊获取它。 我得到了一本关于“自然语言处理”课程的书,我上大学二年级。 我们必须在LISP中编写程序项目,因此我需要快速学习Lisp。

这本书给了我很多帮助。

答案 9 :(得分:8)

一旦我遇到问题。我不知道口齿不清。所以我决定在一个盒子里下载LISP。

然后我发现自己没有任何帮助或文档就安装了Emacs。

然后我有两个问题。

答案 10 :(得分:7)

对于认真的学习者,我建议来自Norvig的PAIP。学习Lisp和AI是一个很好的资源。

答案 11 :(得分:6)

我现在正在通过Lisp工作,并且遇到了“书”来学习Lisp。 Rainer Joswig

建议

这本书名为Common Lisp: A Gentle Introduction to Symbolic Computation,可以PDF格式下载。作者在第一章中以类似于UML的方式开始使用Lisp,并逐渐引入越来越多的Lisp语法。

我也看过实际的lisp,我认为作者对许多必需的信息都有所掩盖,即使对于经验丰富的程序员也是如此。这本书似乎没有这样做(我还没完成,但发现它很有用,可以建议)。

还有一件事,你需要一个可以工作的环境。我发现Lisp in a Box能够很好地运作。它在Windows和Linux上运行并使用eMac。

答案 12 :(得分:6)

伯克利以播客格式提供CS61a。这是基于SICP的CS类介绍。这是一个比麻省理工学院提供的1982年视频更现代的版本。

答案 13 :(得分:5)

我被JVM方言--Clojure吸引到了LISP。 Clojure是一种很棒的LISP,因为

  • 它有“简化的语法”,需要较少的parathensis,有巧妙的设计集合可用
  • 它基于JVM,因此下面有稳定的高性能运行时,此外,我们可以实现整个Java生态系统(库,例如数据库驱动程序,构建工具,IDE)
  • Noir是一个很好的Web框架,可以在Java Web和应用程序服务器上部署应用程序

换句话说,Clojure现在可以在这里用于生产。

在资源方面,至少有4本书和植物在线资源:

答案 14 :(得分:4)

我发现在“The Little Schemer”中练习练习真的有助于磨练我的思维的递归,模式匹配方面,并使在XSLT中工作变得相当容易。

答案 15 :(得分:4)

对于Web开发,您可能需要查看hunchentoot,这是一个用通用lisp编写的Web服务器。

答案 16 :(得分:4)

我喜欢阅读Practical Common LISPANSI Common LISP

On LISP看起来很有趣,但190美元对于一本书来说似乎有点贵。

答案 17 :(得分:2)

根据您的编程经验,我首先推荐Gentle Introduction to Symbolic Computation或Practical Common Lisp。练习时,我在Windows中使用Allegro CL 8.2 Free Express Edition。它将练习变成了很多乐趣。

答案 18 :(得分:1)

抓住一桶(和's)然后去城里..

答案 19 :(得分:1)

我发现阅读这本书SICP确实帮助我学习了。我使用了Steel Bank Common Lisp(SBCL)并取得了很好的成功。

祝你好运

答案 20 :(得分:1)

要回答的难题......我认为这完全取决于你的学习方式。

我在A.I.学习了LISP。和大学里的专家系统课程,但这就是我的学习方式......我不是一个优秀的书本学习者,我更愿意让某人在课堂上向我解释。

LISP绝对是一种独特的语言,如果您习惯于传统的C语言,Java,PHP编程,它需要一种新的思路。

祝你好运!

答案 21 :(得分:0)

按顺序阅读这些书:Gentle介绍符号计算,ANSI Common Lisp由Paul Graham编写,然后转到Practical Common Lisp。或者跳过ACL并在通过PCL工作时将其用作参考。

答案 22 :(得分:0)

我不知道Lisp有什么特别的东西使它与学习任何其他语言不同。您只需要开始使用它并尝试其功能。

一种选择可能是尝试一个简单的project

另一个针对Lisp的选项是编写一个Emacs扩展,帮助您进行常规工作。