方案或 Common Lisp

标签 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?或者还有更好的选择吗?

最佳答案

Common Lisp 和Scheme 之间的差异被高估了。它们就在那里,有些很重要,但对于实际工作来说,学习一个然后学习另一个不会有任何麻烦。当我通常同时编写两者时,我可以毫无问题地在它们之间切换。

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

<小时/>

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

第二个是PLT有一个学习曲线较低的Scheme IDE,称为DrScheme。 Common Lisp 有一个学习曲线较高的 Emacs 插件,名为 Slime 。根据我的经验,Slime 更强大,但是需要足够的学习,如果这是一个为期一个学期的项目(特别是如果您还没有使用 Emacs),您可能应该考虑它。

关于方案或 Common Lisp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2100209/

相关文章:

common-lisp - 我可以(asdf :load-system :foo),,但asdf仍然提示 '"foo“没有指定包”

list - Lisp:给定级别 k 上的节点列表

haskell - Monad 和计算机程序的结构和解释

let 语句的 Lisp 评估

emacs - 智能代码完成在 Scheme 中是如何工作的?

function - 从 lisp 中的整数列表中消除每次出现的 x

common-lisp - 在 Common Lisp 中访问封装类方法中的封装类槽

Scheme-Wrong type to apply #f error in code for checking a prime number

list - Racket/Scheme 中的抽象列表函数 - 列表中元素出现的次数

common-lisp - 重新绑定(bind)词法变量的子集