最近几个月我一直在广泛使用Emacs作为我的主要开发环境,我现在已经到了一个点,我想学习它自己的Emacs Lisp为Emacs编写我自己的小东西并扩展这符合我的个人需求。
话虽如此,我现在也想学习Common Lisp一段时间,一起玩,探索一种新语言。我的问题是,我应该从哪里开始?请问Emacs Lisp能否为我提供必要的知识,以便以后更轻松地获取Common Lisp,反之亦然?我基本上对每条路径的效率感兴趣,以便在我最终决定从一种方言转移到另一种方言时最小化学习曲线。
答案 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是完全可行的,甚至可以帮助你理解作用域,因为它们各不相同。