106得票4回答
Scheme和Common Lisp(或Lisp的其他两个方言)之间的实际区别是什么?

注意:我不是在询问应该学习哪种语言,哪个更好之类的问题。 我选择了免费版本的SICP,因为我觉得它很不错(我听说过一些好的评论,而且我对编程这方面很感兴趣)。 我知道Scheme是Lisp的一个方言,我想知道:Scheme和通用Lisp之间的实际区别是什么? 有很多关于“ CL有更大的s...

81得票7回答
SICP中练习1.6的解释是什么?

我刚开始自学SICP(不是为了上课),并且已经努力尝试 Exercise 1.6 几天了,但似乎无法理解。这一练习中,艾丽莎用 cond重新定义了if语句,像这样:(define (new-if predicate then-clause else-clause) (cond (pre...

74得票8回答
什么是最适合学习SICP的Scheme实现?

我一直在使用PLT Scheme,但是它存在一些问题。 有没有人知道一个更好的实现来处理SICP?

51得票5回答
我能否使用Common Lisp来完成SICP,还是Scheme是唯一可选项?

另外,即使我能使用通用Lisp,我应该使用吗?Scheme更好吗?

36得票6回答
不知道如何解决SICP练习1.11。

练习题 1.11: 一个函数 f 的定义规则是如果n < 3,则f(n) = n,否则f(n) = f(n - 1) + 2f(n - 2) + 3f(n - 3)。编写一个递归过程来计算f,再编写一个迭代过程来计算f。 递归实现很简单,但我不知道如何迭代实现。我试着参考 Fibo...

35得票3回答
哪种语言包适合在Dr.Racket中使用SICP?

我在学习 SICP,得到了一些代码。 所以我开始尝试:#lang scheme (word 'comp 'uter) 返回错误: 函数(word)未定义。 即使我尝试将其复制到IDE(Run)中:(define word? (let ((number? number?) ...

35得票5回答
在Scheme中是否有类似于Lisp中的"runtime"原语?

根据SICP第1.2.6节,练习1.22: 大多数Lisp实现都包括一个名为runtime的原语,它返回一个整数,指定系统运行的时间量(例如,以微秒为单位测量)。 我使用DrScheme,其中似乎没有可用的runtime,因此我正在寻找一个很好的替代品。我在PLT-Scheme参考中发...

33得票18回答
你会选择哪种语言来自学SICP?(SICP是指计算机科学经典教材《计算机程序的构造和解释》)

我已经迷上了学习函数式编程。因此,我的下一个自学项目是通过《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs)进行学习。不幸的是,我从未学过Lisp,因为我在大学里并非计算机科学专业。 虽然SICP并不强调编程工具,...

32得票3回答
Dr Racket存在与SICP相关的问题

我正在学习SICP。目前在第一章中,我无法让Racket允许我重新定义“基元(primitives)”。例如,我认为我应该可以任意执行(define + 5),那样应该没问题,或者重新定义sqrt过程。但实际上,我却得到了这个:define-values: cannot change cons...

30得票4回答
Mit-Scheme 中的空值是什么?

有人能告诉我在 MIT-Scheme 中“空值表示”是什么吗?在 SICP 书中,应该是“nil”,但它不起作用。 谢谢。