如何学习Common Lisp和Emacs Lisp?

时间:2010-10-01 15:06:44

标签: emacs lisp elisp common-lisp

最近几个月我一直在广泛使用Emacs作为我的主要开发环境,我现在已经到了一个点,我想学习它自己的Emacs Lisp为Emacs编写我自己的小东西并扩展这符合我的个人需求。

话虽如此,我现在也想学习Common Lisp一段时间,一起玩,探索一种新语言。我的问题是,我应该从哪里开始?请问Emacs Lisp能否为我提供必要的知识,以便以后更轻松地获取Common Lisp,反之亦然?我基本上对每条路径的效率感兴趣,以便在我最终决定从一种方言转移到另一种方言时最小化学习曲线。

8 个答案:

答案 0 :(得分:13)

从Emacs Lisp开始(假设您似乎已经开始自定义您的emacs) - 它似乎对您更有用。

请记住,Emacs Lisp之间有很多区别(有很多缓冲区管理的东西,特别是在你可能会在野外看到的代码)和Common Lisp(更类似于通用编程语言),所以你采取的路线,预计会有一些“浪费”

答案 1 :(得分:12)

我假设您在发布之前搜索了SO,并查看了问题"What's the best way to learn LISP?"和可能"Tips for Learning Elisp"。这是两个如何学习任何一个的良好起点。

至于哪个首先要学习,这一切都取决于你想做什么。如果您对自己感兴趣的项目有所了解,那么请使用适当的lisp来解决这个问题。例如,如果要在开发环境中添加/更改某些功能,请使用emacs lisp。否则(如果它不与编辑器相关),请使用常见的lisp。

对我来说,一切都是为了找到一个你感兴趣的项目,并用它来指导使用哪种语言。

他们各自足够接近,熟悉一个人会直接使用另一个。 Emacs lisp具有许多特定于域的功能(缓冲区,区域,文本属性,文件,子流程等),而常见的lisp具有各种各样的库。

答案 2 :(得分:8)

答案 3 :(得分:5)

我建议你先从Common Lisp开始,因为它比Emacs Lisp更通用。一旦你熟悉了Common Lisp,你就很难找到Emacs Lisp(这是一个更简单的Lisp方言)。

你可能也就是为什么我建议从两者中“更难”的语言开始,你提出这样的问题是正确的。答案很简单--Emacs Lisp中的大部分内容都与Emacs相关,如果你从那里开始,你可能会错过大局的一部分。

我亲自开始了我的Lisp之旅,其中包括其他人已经推荐的优秀书籍“Practical Common Lisp”。它让我了解了lisp的愿景和想法,一旦我理解了Common Lisp,我就可以很容易地立即开始编写Emacs Lisp代码。我不确定这个旅程会在相反的方向上顺利进行,但一切都是主观的,也是个人喜好的问题。

答案 4 :(得分:3)

答案 5 :(得分:3)

玩和练习Emacs Lisp。您将立即能够做您可以看到和相关的事情。或许同时读一本关于Common Lisp的书。和Elisp手册。

阅读不会受到影响,可以为您提供更多背景和概述。但这取决于你喜欢学习的方式等等。阅读能给你提供比你开始练习更大的画面 - 让你知道你可以去哪里,你能做什么,即使你从不需要或想要。

答案 6 :(得分:2)

我建议您从EmacsLisp开始,因为它将如前所述更加直接有用 一旦掌握了语言的特殊性,就可以开始使用eieio

引用emacswiki,它是An implementation of the CommonLisp object orientation standard (CLOS) in EmacsLisp

两全其美!

答案 7 :(得分:1)

可能并行学习。

在学习Common Lisp时,我使用了计算机程序的结构和解释中的练习。这意味着我很早就接触到了Scheme和Common Lisp之间的差异。同样,学习emacs-lisp和CL是完全可行的,甚至可以帮助你理解作用域,因为它们各不相同。