学习 LISP 的最佳方法是什么?
我已经用 Python、PHP、Java 和 C 编程几年了,而且我刚刚读完《黑客与画家》,所以我很想尝试一下 LISP!
我知道这与我所知道的完全不同,而且这并不容易。 另外,我认为(如果我错了,请纠正我)围绕 LISP 的社区和开发要少得多。 所以我的问题是:学习 LISP 的最佳方法是什么?
我不介意买书或投资一些时间。 我只是不想浪费它。
“最终”的想法是使用 LISP 进行 Web 开发,我知道这并不常见,所以...我知道在选择第一本书或教程之前计划我的学习并花大量时间在可能不会的事情上是很好的。是最好的办法!
谢谢大家的答案!
编辑: 我读了《Practical Common Lisp》,它是:...长、难、有趣,并且绝对让我在 Lisp 中滚动,之后我读了《小阴谋家》,它很短、有趣,而且非常非常对我的整体编程有好处。 所以我的建议是先阅读《小阴谋家》,然后(需要几个小时,值得)如果你认为 lisp(或方案或任何方言)不是你想要的,你仍然会玩得很开心思考递归的新方法!
I have been programming in Python, PHP, Java and C for a couple or years now, and I just finished reading Hackers and Painters, so I would love to give LISP a try!
I understand its totally diferent from what i know and that it won't be easy. Also I think (please correct me if I'm wrong) there's way less community and development around LISP. So my question is: what's the best way to learn LISP?
I wouldn't mind buying books or investing some time. I just don't want it to be wasted.
The "final" idea would be to use LISP for web development, and I know that's not so common so... I know it's good to plan my learning before picking the first book or tutorial and spending lots of time on something that may not be the best way!
Thank you all for your answers!
edit: I read Practical Common Lisp and was: ... long, hard, interesting and definitely got me rolling in Lisp, after that i read the little schemer, and it was short, fun and very very good for my overall programming. So my recommendation would be to read first the little schemer, then (its a couple of hours and its worth it) if you decide lisp(or scheme or whatever dialect) is not what you where looking for, you will still have a very fun new way of thinking about recursion!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(22)
我发现阅读SICP这本书确实对我的学习有帮助。 我使用了 Steel Bank Common Lisp (SBCL),并取得了很好的成功。
祝你好运
I found reading the book SICP really helped me learn. I used Steel Bank Common Lisp (SBCL) and had good success with it.
Good luck
我不知道 Lisp 与学习任何其他语言有什么特别之处。 您只需要开始使用它并尝试它的功能即可。
一种选择可能是尝试一个简单的项目。
另一种特定于 Lisp 的选择是编写一个 Emacs 扩展来帮助您进行日常工作。
I don't know that there's anything special about Lisp that makes it different from learning any other language. You just need to start using it and trying out its features.
One option might be to try a simple project.
Another option, that's specific for Lisp, would be to write an Emacs extension that assists you in your regular work.
按顺序阅读这些书:《符号计算简介》、Paul Graham 编写的 ANSI Common Lisp,然后转到《实用 Common Lisp》。 或者跳过 ACL 并在学习 PCL 时将其用作参考。
Read these books in order: Gentle Introduction to Symbolic Computation, ANSI Common Lisp by Paul Graham and then move onto Practical Common Lisp. Or skip ACL and use it as a reference while working your way through PCL.
尝试阅读 Peter Seibel 的实用 Common Lisp。
Try reading Practical Common Lisp, by Peter Seibel.
我个人最喜欢的是 Abelson & Sussman 计算机程序的结构和解释。
它使用Scheme,这是一种漂亮而干净的Lisp 方言。
如果你喜欢更实用的方法,也许你应该选择一些 Lisp 框架来进行网页设计
(我不知道这样的野兽是否存在)然后直接跳进去。
My personal favorite is Abelson & Sussman Structure and Interpretation of Computer Programs.
It uses Scheme, which is a nice and clean dialect of Lisp.
If you like a more practical approach maybe you should pick some Lisp framework for web design
(I have no idea if such a beast exists) and jump right in.
您可能想从小阴谋家开始作为热身。 这不是一本关于编写生产型 Lisp 程序的实用书,但它是一本学习如何用 Lisp 思考的好书。
You might want to start with The Little Schemer as a warm-up. It's not a practical book about writing production Lisp programs, but it's a great book for learning how to think in Lisp.
麻省理工学院以 DIVX 和 MPEG 格式提供了完整的 LISP 课程。 我强烈推荐它。
http://groups.csail.mit.edu/mac/类/6.001/abelson-sussman-lectures/
MIT has made available an entire LISP course in DIVX and MPEG format. I highly recommend it.
http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/
现在有一本名为 'Land of LISP' 的书,通过编写 80 年代的文章来教授 LISP 编程风格的文字游戏。 我现在正在读它,写得很好,而且不太严肃,这是我喜欢的。
There is now a book out called 'Land of LISP' that teaches LISP programming through writing 80's style text games. I'm reading it now, and it's very well written and doesn't take itself too seriously, which I like.
这里有几个选项。 首先,Scheme 和 Common Lisp 在相当深的方面(例如范围界定)有很大不同; 您应该选择一个开始并坚持一段时间。。 我是 Common Lisp 的粉丝,但这可能是 vi-vs-EMACS 宗教问题之一。
对于Scheme,请选择Kent Dybvig 的Scheme 编程语言,然后选择SICP。
对于 Common Lisp 以及实用 Common Lisp,我推荐 David Lamkins 的 Successful Lisp。 Success Lisp 也可在线获取免费。
之后,查看 Queinnec 的 Lisp in Small Pieces,以及Norvig 的人工智能中的 Lisp 书籍。
马蒂·霍尔 (Marty Hall) 在约翰霍普金斯大学有一份不错的清单。
更新:我并不是说永远坚持下去,只是试图同时学习两者会让人感到困惑。
There are several options here. First of all, Scheme and Common Lisp are fairly different in rather deep ways (like scoping); you should pick one to start with and stick with it for a while. I'm a Common Lisp fan, but that may be one of those vi-vs-EMACS religious questions.
For Scheme, go for Kent Dybvig's Scheme Programming Language, followed by SICP.
For Common Lisp, as well as Practical Common Lisp, I'd recommend David Lamkins's Successful Lisp. Successful Lisp is also available online for free.
After than, look at Lisp in Small Pieces by Queinnec, and Norvig's Lisp in AI book.
Marty Hall has a nice list at Johns Hopkins.
Updated: I don't mean stick to it forever, just that trying to learn both at once would be confusing.
阅读 Conrad Barski 的 Lisp 之国。 这是使用卡通和游戏对 Lisp 编程进行充满乐趣的介绍。
Pick up The Land of Lisp by Conrad Barski. It is a fun filled introduction to Lisp programming using cartoons and games.
我推荐 Project Euler 作为小问题的优秀来源,您可以用它来自学任何新的编程语言。
I'd recommend Project Euler as an excellent source of small bite-sized problems you can use to teach yourself any new programming language.
Paul Graham 的 Ansi Common Lisp 是一本好书。
我认为它可能已经绝版,所以你最好通过亚马逊购买。
我收到了大学二年级“自然语言处理”课程的书。
我们必须用 LISP 编写编程项目,所以我需要快速学习 Lisp。
这本书对我帮助很大。
Ansi Common Lisp by Paul Graham is a good book.
I think it might be out of print, so your best bet to get it via Amazon.
I got the book for a "Natural Language Processing" class I took my sophomore year in college.
We had to write the programing projects in LISP, and so I needed to learn Lisp quickly.
The book helped me quite a bit.
有一次我遇到了问题。 我不懂口齿不清。 所以我决定下载一个盒子里的 LISP。
然后我发现自己安装了 Emacs,没有任何帮助或文档。
然后我遇到了两个问题。
Once I had a problem. I didn't know lisp. So I decided to download LISP in a box.
Then I found myself with an Emacs install without any help or documentation.
Then I had two problems.
对于认真学习的人,我推荐 Norvig 的 PAIP。 这是学习 Lisp 和 AI 的绝佳资源。
For serious learners, I'd recommend PAIP from Norvig. It is an excellent resource to learn both Lisp and AI.
伯克利提供播客格式的 CS61a。 这是基于 SICP 的 CS 课程介绍。 这是比 MIT 1982 年视频更现代的版本。
Berkeley offers CS61a in podcast format. This is an intro to CS class based around SICP. It's a more modern version than the 1982 videos MIT has available.
我现在正在学习 Lisp,并且偶然发现了学习 Lisp 的“书”。 它是由Rainer Joswig建议的,
这本书叫做Common Lisp:符号计算简介,可以 PDF 格式下载。 作者在第一章中从类似 UML 的 Lisp 方法开始,逐渐介绍越来越多的 Lisp 语法。
我还研究了实用的 lisp,我认为作者掩盖了很多必需的信息,即使对于经验丰富的程序员也是如此。 这本书似乎并没有做到这一点(我还没有完全完成,但发现它足够有用,可以提出建议)。
还有一件事,你需要一个工作环境。我发现 Lisp in a Box< /a> 工作顺利。 它在 Windows 和 Linux 上运行并使用 eMac。
I'm working my way through Lisp right now and have come across "the book" to learn Lisp. It was suggested by Rainer Joswig
The book is called Common Lisp: A Gentle Introduction to Symbolic Computation and can be downloaded as a PDF. The author begins with a UML like approach to Lisp in the first chapter and gradually introduces more and more Lisp syntax.
I've also looked at practical lisp and I think that the author glosses over a lot of required information, even for a seasoned programmer. This book doesn't seem to do that (I'm not completely finished, but have found it useful enough to suggest).
one more thing, you'll need an environment to work in. I've found Lisp in a Box to work well. It runs on Windows and Linux and uses eMacs.
我被 LISP 的 JVM 方言 - Clojure 所吸引。 Clojure 是一种很棒的 LISP,因为
,Clojure 可以立即用于生产。
说到资源,至少有 4 本书和丰富的在线资源:
I've got attracted to LISP by its JVM dialect - Clojure. Clojure is sort of great LISP, since
In other words, Clojure can be used in production right here, right now.
When it comes to resources, there are at least 4 books and planty online resources:
我喜欢阅读 Practical Common LISP 和 ANSI 通用 LISP。
On LISP 看起来很有趣,但 190 美元对于一本书来说似乎有点贵。
I enjoyed reading Practical Common LISP and ANSI Common LISP.
On LISP looks interesting, but at $190 seems a little expensive for a book.
对于 Web 开发,您可能需要查看 hunchentoot,这是一个用 common lisp 编写的 Web 服务器。
For web development you might want to have a look at hunchentoot, a web server written in common lisp.
我发现完成“小计划者”中的练习确实有助于磨练我的思维中的递归、模式匹配方面,并使 XSLT 的工作变得相当容易。
I found working through the exercises in "The Little Schemer" really helped hone the recursive, pattern-matching side of my thinking and made working in XSLT considerably easier.
根据您的编程经验,我建议首先阅读《符号计算简介》或《实用 Common Lisp》。 为了进行练习,我在 Windows 中使用 Allegro CL 8.2 Free Express Edition。 它使练习变得很有趣。
I recommend Gentle Introduction to Symbolic Computation or Practical Common Lisp first, based on your programming experiences. For practicing, I use Allegro CL 8.2 Free Express Edition in Windows. It turns practicing into a lot of fun.
这是一个很难回答的问题......我认为这完全取决于你的学习风格。
我在大学的人工智能和专家系统课程中学习了 LISP,但这就是我学习的方式......我不是一个很好的书本学习者,我更喜欢有人在课堂上向我解释它。
LISP 绝对是一种独特的语言,如果您习惯了传统的 C、Java、PHP 编程,那么它需要新的思路。
祝你好运!
Sort of a difficult question to answer ... I think it all depends on your learning style.
I learned LISP in my A.I. and Expert Systems classes in college, but that's how I learn ... I'm not a great book learner, I prefer to have someone explain it to me in a class setting.
LISP is definitely a unique language and it requires a new train of thought if you're used to conventional C, Java, PHP programming.
Best of luck to you !