Scheme或Common Lisp

时间:2010-01-20 09:22:40

标签: scheme common-lisp

对于一个学校项目(一个自由选择项目),我计划通过SICP(计算机程序的结构和解释)和学习计划。之后我想用它创建一些有趣的东西(也是这个项目的一部分)。但是,根据我的阅读,Scheme可能不是用于项目的最佳方言,而使用Common Lisp可能更好。 (https://stackoverflow.com/questions/108201/common-lisp-or-scheme)。但是,这意味着我无法使用SICP来学习它?

我还考虑过首先学习Scheme和Common Lisp的选项,但显然有一些“微妙”的差异可能会非常阻碍。

最佳选择是什么?只需学习Scheme并使用它?学习Scheme然后学习Common Lisp?或者跳过Scheme(和SICP​​)并简单地学习Common Lisp?还是有更好的选择?

3 个答案:

答案 0 :(得分:4)

Common Lisp和Scheme之间的差异被高估了。他们在那里,有些是重要的,但对于实际工作,你不会有任何麻烦学习一个,然后另一个。当我经常写两篇文章时,我可以毫无问题地在它们之间切换。

如果您打算从SICP开始,那么我将开始学习Scheme。如果您计划从项目开始并决定需要Common Lisp,那么我将开始学习Common Lisp。之后学习第二种方言非常容易。


有几件事需要考虑。项目类型最重要:Scheme非常适合语言设计项目。如果你的项目是一个新的,奇怪的语言(或只是语言特性)的解释器/编译器/解析器/等,那么Scheme是理想的。另一方面,Common Lisp在你需要很多基本实用程序已经内置的领域非常强大,但是不知道你提前构建的是什么 - 你最终得到的DSL大多数时间。这就是它在人工智能中如此受欢迎的原因。 (这就是我用它的那种代码。)

其次,PLT有一个名为DrScheme的低学习曲线Scheme IDE。 Common Lisp有一个名为Slime的高学习曲线Emacs插件。根据我的经验,Slime更强大,但是如果这是一个为期一学期的项目(特别是如果你还没有使用过Emacs),那么你应该考虑足够的学习。

答案 1 :(得分:1)

SICP是一本相对较旧的书,使用的是Scheme的旧版本。本书中大多只使用基本的Scheme功能。因此,在Common Lisp中为书中的练习编写解决方案相对容易。如果你有一些以上的平均技能,你应该能够将代码翻译成Common Lisp。这是一个example for SICP exercises in Common Lisp

SICP更像是一本关于编程和计算机科学的书,而不是关于Scheme或Lisp编程的书。为此,其他书籍更好。对于Common Lisp,请参阅'Practical Common Lisp'作为一个良好的开端。

答案 2 :(得分:0)

一旦你学习了Scheme并通过SICP工作,你在函数式编程中的编程能力就会非常好。

那时,学习Common Lisp很容易。你认为当你已经了解Java时,学习C#是个问题吗?