学习LISP的最佳方法是什么?[关闭]


167

我已经使用Python,PHP,Java和C进行编程已有两年或几年了,而我刚读完Hackers and Painters,所以我想尝试一下LISP!

我知道它与我所知道的完全不同,而且这并不容易。我也认为(如果我错了,请纠正我)围绕LISP的社区和开发方式会更少。所以我的问题是:学习LISP的最佳方法是什么?

我不介意买书或花一些时间。我只是不想浪费它。

“最终”的想法是使用LISP进行Web开发,我知道这并不常见,所以...我知道在选择第一本书或教程并花很多时间去做可能没有的东西之前,先计划好我的学习是很好的成为最好的方法!

谢谢大家的答案!

编辑:我读了《实践通用Lisp》,并且:... ...漫长,艰苦,有趣,并且确实使我在Lisp中滚动,之后,我阅读了这个小编程器,它简短,有趣,并且对我的整体编程非常好。因此,我的建议是先阅读小策划者,然后(几个小时,这是值得的),如果您确定Lisp(或计划或其他方言)不是您要找的东西,您仍然会觉得很有趣递归的新思维方式!


Common Lisp:一种交互式方法。Stuart Shapiro所著的Old(1992)书。过去仅是枯树,但近年来以电子形式可用。
卡兹(Kaz)2014年

Robert Wilensky 撰写Common LISPCraft是一本有趣的书,即使年代久远了。我有一份纸本副本,日期是1986
。– Kaz

Answers:


114

尝试阅读Peter Seibel的《实用的普通Lisp》


2
我想我在校园里看过那本书...生病了,马上去捡吧!
DFectuoso

2
不要忘记REPL!我还没有使用过有关LISP的知识,但是它使我成为了所有其他语言中更好的程序员。
罗伯特·K

1
强烈推荐,这是我们在AI课堂上用来教我们LISP进行项目学习的书。
helloandre

6
DFectuoso -它不只是一个链接有关的书,这这本书。开始在线阅读这本书
亚伦,

2
是的,我知道,但是我不喜欢在监视器上阅读...无论如何,我选择了这个作为答案,因为我开始读这本书,而且很好(我读了一半以上,然后生了小策划者,请在编辑该内容时我都完成了= 0)
DFectuoso


55

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


这似乎是一个不错的快速阅读开始!TY
DFectuoso

5
我倾向于不同意。是的,深入研究它可能是学习Lisp的最快方法,但它也最有可能使人们离开。PCL的优势在于,有经验的程序可以从第一天开始使用 Lisp,而不仅仅是被记住
Aaron

43

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

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


3
这些讲座基于其教科书《计算机程序的结构和解释》。
graywh

7
我发现DivX视频的质量与MPEG视频相似,即使它们小得多。节省带宽和磁盘空间。
德鲁·诺阿克斯

2
为了节省更多磁盘空间,请转到链接并搜索“结构和解释”(使用引号)。
比尔·埃文斯

我正在观看视频SICP。他们使用哪种方言?他们没有提及方言,只是称其为“ LISP” ...
priestc

2
@priestc我知道这个问题是4年前问的,只是为了弄清楚。他们正在使用“方案”。
dptd

33

现在有一本名为《 LISP的土地》的书,通过编写80年代风格的文字游戏来教授LISP编程。我正在阅读,它写的很好,也不太重视自己,这是我喜欢的。


23

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

对于Scheme,请选择Kent Dybvig的Scheme编程语言,然后选择SICP。

对于Common Lisp以及实用Common Lisp,我建议David Lamkins的成功Lisp。 成功的Lisp 也可以免费在线获得

之后,请看Queinnec的《小件Lisp》和AI书中 Norvig的《Lisp》

马蒂·霍尔(Marty Hall)在约翰·霍普金斯(Johns Hopkins)的名单很不错

更新:我并不是要永远坚持下去,只是想一次学习两者都会感到困惑。



17

我建议将Euler项目作为细小问题的绝妙来源,您可以用来教自己任何新的编程语言。


1
我已经准备好参加Euler项目,所以是的,我在那里度过的时间将练习LISP(一旦我学习了如何做几件事)
DFectuoso

9

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

我认为它可能已经绝版了,所以最好的选择是通过亚马逊获得它。我在大学二年级的时候获得了“自然语言处理”课程的书。我们不得不用LISP编写编程项目,因此我需要快速学习Lisp。

这本书对我帮助很大。


8

一旦我有问题。我不知道口齿不清。因此,我决定在一个盒子中下载LISP。

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

然后我有两个问题。


2
这里的问题是,有人没有告诉您有关本教程的信息。按Control-H,释放它们,然后按T。这将带您进入一个教程,它将为您提供入门所需的一切。很抱歉得知您的不良经历。
JasonFruit

7
+1表示旧的正则表达式笑话,但-1表示无效。:-P
Michael H.

7

对于认真的学习者,我建议使用Norvig的PAIP。这是学习Lisp和AI的绝佳资源。


我第二,这是一本很棒的书,写得好,而且IMO比实用Common Lisp更具启发性。
Johan Kotlinski

6

伯克利提供播客格式的CS61a。这是基于SICP的CS类的简介。它比MIT提供的1982年视频更现代。


6

我现在正在通过Lisp进行学习,并且碰到了“书”来学习Lisp。这是Rainer Joswig的建议

该书称为Common Lisp:符号计算的温和介绍,可以PDF格式下载。在第一章中,作者从对Lisp的类似UML的方法开始,并逐步介绍了越来越多的Lisp语法。

我还研究了实际的Lisp,我认为即使对于一个经验丰富的程序员,作者也会掩盖许多必需的信息。这本书似乎没有做到这一点(我还没有完全读完,但是已经发现它足以建议您)。

还有一件事,您需要一个工作环境。我发现Lisp in a Box可以正常工作。它运行在Windows和Linux上,并使用eMac。


5

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

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

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

在资源方面,至少有4本书和丰富的在线资源:



4

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


你知道,它很悲伤地看到各地口齿不清是面向Web的Web服务器和框架......有ZERO的设计(CSS甚至内嵌样式
DFectuoso

4

我发现通过“ The Little Schemer”中的练习进行工作确实有助于磨练我的思想的递归,模式匹配方面,并使使用XSLT的工作变得相当容易。


2

根据您的编程经验,我建议您首先对符号计算或实用Common Lisp进行“温和介绍”。为了练习,我在Windows中使用Allegro CL 8.2 Free Express Edition。练习变得很有趣。


1

有点难以回答的问题...我认为这完全取决于您的学习风格。

我在大学的AI和Expert Systems课上学习了LISP,但这就是我的学习方法……我不是一个很好的书本学习者,我更愿意让别人在课堂上向我解释它。

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

祝您好运!


1

我发现阅读SICP这本书确实对我有所帮助。我使用了Steel Bank Common Lisp(SBCL),并获得了很好的成功。

祝好运


感谢林先生今天要挑选一些书,明天很早就开始!
DFectuoso

但是请注意,SBCL用于Common LISP,而这本书是关于Scheme的。我还没有完全阅读它,但是我认为它对于学习Common LISP仍然很有帮助。您只需要在Common LISP中找到等效项即可。
Zelphir Kaltstahl '16年


0

我不知道Lisp有什么特别之处,使其不同于学习其他任何语言。您只需要开始使用它并试用其功能即可。

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

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


0

按顺序阅读这些书:Paul Graham撰写的《符号计算的温和入门》,《 ANSI Common Lisp》,然后继续阅读《实用Common Lisp》。或者跳过ACL,并在通过PCL进行操作时将其用作参考。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.