我有C ++编程背景,但使用C ++对我来说看起来更简单 - 我们有标准定义编译器应该有什么,我们有很少使用的编译器(G ++,clang,MSVC ++),因为我知道如何编译,这对我来说不难。此外,对于初学者,有IDE可以为您编译代码。 Lisp,afaik,没有明确的标准。另外,我不知道,所以我真的不知道如何编译它的代码。
问题是:我应该安装什么才能让它在那里运行?我应该采取什么材料才能实现自给自足?如果你能给我一些关于如何编译我的第一个代码的教程的链接,我会很高兴 - 我想在去之前测试它(简单的“你好,世界”就足够了)。
答案 0 :(得分:6)
获取Practical Common Lisp的副本:http://www.gigamonkeys.com/book/ 这本书给出了使用Common Lisp的更多动力并解释了它。
还可以从此处下载Common Lisp标准的HTML版本:Common Lisp Documentation。特别是Common Lisp HyperSpec 7.0。
获取SBCL文档答案 1 :(得分:2)
从C ++背景来看,你可能已经学会了其他Algol方言,因为它们都是不同的方言,它们通常很容易学习。这与学习与你知道的语言密切相关的另一种语言与最远的语言相比几乎是一样的。
LISP不是Algol方言,所以期望它与C ++和Java之间的转换不同。 LISP方言分享了McCarthy在1958年制作的大部分原始规范,因此在知道一个方法时学习一个新的Lisp方言很简单。我建议你从Paul Grahams essay和他的Common Lisp版本的eval开始。您可以免费下载许多历史和当前书籍,但对于Common Lisp,CLHS(hyperspec,直接链接)是最重要的。 Paul Grahams的书On LISP也是免费提供的,但对于中级Lispers来说更是如此。
我爱Land of Lisp。这是一本很好的书,你可以在其中学习Common Lisp的精髓。 Previous version of an early chapter和chapter 8免费提供。我买了这本书并认为这是学习Common Lisp的有趣方式。 (我还推出了名为Realm of Racket的新版本的Racket(Scheme方言)版本,但我认为旧的LOL略胜一筹,而RoR则有更酷的(图形)游戏)
我学习了Common Lisp作为我的第一个Lisp。我认为选择学习哪种方言并不重要,但重要的是要在Lisp中思考并在LISP中自己制作自己的Eval(制作自己的方言或LISP的子集)。此外,如果你喜欢口译员和编译器,你也应该尝试用不同于Lisp的东西制作一个。你会从中学到很多东西。
我在执行Common Lisp任务时使用Clisp,因为它有readline
支持,我认为更容易理解它的错误消息和调试接口。我甚至在其中运行我的程序,除非我需要更多的性能。它不会经常发生,但我会使用SBCL。