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

178

我已经用Python、PHP、Java和C编程了几年,刚刚读完《黑客与画家》,所以我想尝试一下LISP!

我知道它完全不同于我所知道的语言,而且学习起来也不容易。此外,我认为(如有错请指正)LISP社区和开发人员要少得多。因此,我的问题是:学习LISP的最佳途径是什么?

我不介意买书或花时间学习,但我不希望浪费时间。

“最终”想法是将LISP用于Web开发,我知道这不太常见,所以...在选择第一本书或教程并花费大量时间学习之前,我知道规划我的学习很重要,以免走弯路!

谢谢大家的回答!

编辑:我读了《Practical Common Lisp》,感觉很长、很难、很有趣,绝对让我开始了解Lisp;接着我读了《小Schemer》,它很短,很有趣,对我的整体编程水平有很大帮助。因此,我的建议是先读《小Schemer》(几个小时,值得一读),然后再决定是否继续学习Lisp(或Scheme或任何方言)。即使您最终不选择这门语言,也将获得一种有趣的递归思考方式!


《Common Lisp: An Interactive Approach》是Stuart Shapiro于1992年出版的一本书,主要介绍了Common Lisp编程语言。该书曾经只有纸质版本,但近年来已经提供电子版 - Kaz
《Common LISPCraft》是罗伯特·威伦斯基的一本有趣但有些陈旧的书。我有一本1986年的纸质版。 - Kaz
22个回答

118

2
我想我在校园里看到了那本书...所以我现在去取它! - DFectuoso
2
不要忘记 REPL!我虽然没有用到我学习的LISP知识,但它让我在其他所有语言中成为了一个更好的程序员。 - Robert K
1
强烈推荐这本书,这是我们AI课程中用来教授LISP编程的教材。 - helloandre
6
DFectuoso不仅仅是关于这本书的链接,它就是这本书。现在开始在线阅读这本书。 - Aaron
2
是的,我知道,但我不喜欢在显示器上阅读...无论如何,我选择这个答案是因为我开始阅读这本书,它很好(我已经读了一半,然后我会读《小计算机程序员》。当我完成两本书时,我会编辑这篇文章=0) - DFectuoso

76

我个人最喜欢的是Abelson&Sussman 计算机程序的构造和解释。它使用Scheme,这是一种漂亮、简洁的Lisp方言。

如果你喜欢更实际的方法,也许你应该选择一些用于Web设计的Lisp框架(我不知道是否存在这样的东西),然后直接开始实践。


1
Paul Graham有一个名为Arc的lisp web框架。 - graywh
15
我认为Arc是一种Lisp方言,而不仅仅是一个框架。http://www.paulgraham.com/arc.html - okonomichiyaki

59

那似乎是一个很好且快速的阅读开始!谢谢。 - DFectuoso
5
我倾向于不同意。是的,深入学习可能是学习Lisp最快的方法,但也很容易让人望而却步。相比之下,《Practical Common Lisp》这本书的优势在于有经验的程序员可以从第一天开始使用Lisp,而不仅仅是被迷住。 - Aaron

44

3
这些讲座是基于他们的教材《计算机程序的构造和解释》。 - graywh
7
我发现DivX视频的质量与MPEG视频相似,尽管它们要小得多。 省下你的带宽和磁盘空间吧。 - Drew Noakes
2
为了获得更多的磁盘空间节省,请访问链接,并搜索“结构和解释”(使用引号)。 - Bill Evans at Mariposa
我正在学习SICP的视频。他们使用哪种方言?他们没有提到任何方言,只是称其为“LISP”... - priestc
2
@priestc 我知道这个问题是4年前问的,但为了明确起见。他们正在使用“Scheme”。 - dptd
注意:这些视频与该书第一版有关。该书已经有第二版,并且两者之间存在相当大的差异。 - Abhirath Mahipal

36

现在有一本名为'LISP之地'的书,通过编写80年代风格的文本游戏来教授LISP编程。我正在阅读它,它写得非常好,不会过于严肃,这点我很喜欢。


24

这里有几个选项。首先,Scheme和Common Lisp在某些相当深入的方面(如作用域)有着不同之处。你应该选择其中一个开始并坚持一段时间。我是Common Lisp的粉丝,但这可能是那种vi与EMACS宗教问题。

对于Scheme,可以先学习Kent Dybvig的Scheme编程语言,然后再学SICP。

对于Common Lisp,以及Practical Common Lisp,我推荐David Lamkins的Successful Lisp。 Successful Lisp也可以免费在线获取

然后,看看Queinnec的Lisp in Small Pieces和Norvig的Lisp in AI书

Marty Hall在约翰斯·霍普金斯大学有一个不错的列表

更新:我的意思不是永远坚持一种语言,而只是尝试同时学习两种会令人感到困惑。


19

获取Conrad Barski所著的《Lisp之地》。这是一个充满趣味性、用卡通和游戏介绍Lisp编程的入门书。


17

我建议使用欧拉计划(Project Euler)作为一个很好的来源,它提供了一些小巧易懂的问题可以用来学习任何新的编程语言。


1
我已经是 Project Euler 的一个好参与者了,所以我在那里花的时间将用来练习 LISP(一旦我学会了一些东西)。 - DFectuoso

9

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

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

这本书对我帮助很大。


9

曾经我遇到了一个问题,我不会Lisp。因此我决定下载LISP in a box。

结果我发现我的Emacs安装中没有任何帮助或文档。

于是我有了两个问题。


2
这里的问题是有人没告诉你关于教程;按下Control-H键,释放它们,再按T键。这将带您进入一个教程,为您提供开始所需的所有内容。很遗憾听到您的不好体验。 - JasonFruit
7
引用旧的正则表达式笑话是加分项,但不仅如此还需要更有用的内容。 :-P - Michael H.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接