问题标签 [sicp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
34520 浏览

lisp - Scheme 和 Common Lisp 之间的实际区别是什么?(或任何其他两种 Lisp 方言)

注意:我不是在问要学哪个,哪个更好,或者类似的东西。

我选择了 SICP 的免费版本,因为我觉得它读起来会很好(我听说过关于它的好东西,而且我对这种编程方面很感兴趣)。

我知道 Scheme 是 Lisp 的一种方言,我想知道:Scheme 和 Common Lisp 之间的实际区别是什么?

似乎有很多关于“CL 有一个更大的标准库......方案不适合现实世界的编程......”但没有实际的东西说“这是因为 CL 是这个/有这个”。

0 投票
1 回答
430 浏览

lisp - SICP car/cdr练习题题

我在这里为 SICP 试用这个“在线导师”:http://icampustutor.csail.mit.edu/6.001-public/tutor.cgi?op=registration- page

我正在查看以下问题:

假设我们已经评估了表格

仅使用 car、cdr 和 thing 其值是下面给出的列表结构。

(1)
1
(2 3)
(3)

我对最后一个有问题。我想出了一种使用反引号和取消引号的方法,但是在线教程不会接受答案。使用鸡计划的解释器:

还有另一种方法可以做到这一点吗?

0 投票
5 回答
3487 浏览

scheme - 如何在 SICP、Scheme、Exercise 2.78 等中获取函数 put 和 get

我正在尝试在 SICP 中做练习 2.78,但 put 和 get 的功能是未知的。我尝试了多种语言,例如相当大、球拍、r5rs、mit-scheme、mzscheme 等。我什至下载了 SICP 支持 (http://www.neilvandyke.org/sicp-plt/),但无济于事。我怎样才能让这些功能发挥作用?

0 投票
1 回答
1501 浏览

scheme - Scheme、SICP、R5RS,为什么延迟不是特殊形式?

这与 SICP 的第 3.5 章有关,其中正在讨论流。这个想法是:

不应该评估 cons-stream 的第二部分,所以它不应该打印“hey”。这确实发生了,我得到以下输出:

嘿(1 . #< 承诺 >)

所以我的结论是延迟没有作为一种特殊的形式来实现?还是我做错了什么?我使用以下实现:

延迟是默认的 R5RS 实现。这是实施中的错误,还是我没有正确或理解它?

0 投票
1 回答
351 浏览

clojure - 为什么在 Clojure 中尝试使用辛普森规则时会出现转换错误?

我正在尝试使用 Clojure 完成 SICP 中的一些练习,但我当前执行辛普森规则的方法出现错误(例如 1-29)。这与懒惰/急切的评估有关吗?有想法该怎么解决这个吗?错误和代码如下:

java.lang.ClassCastException:user$simpson$h__1445 不能在 clojure.lang.Numbers.divide (Numbers.java:139) 处转换​​为 java.lang.Number

这是代码:

0 投票
3 回答
1951 浏览

lisp - 为什么 apply 对 lisp 评估器如此重要?

我已经阅读了 SICP 的第 4 章,发现第一节列出了实现评估器最重要的功能,eval并且apply,我知道这eval很重要,但为什么apply这么重要?对于某些语言,在 Javascript 中完全没有apply这样的语言。

编辑:对不起,我错了,在 Javascript 中没有应用,请忽略它。

0 投票
2 回答
555 浏览

scheme - 使用流生成带有交替符号的数字的更好解释

这里的代码可以生成这样的数字 [1 -2 3 -4 5 -6 7 -8 9 -10 ...]

我不太明白它产生交替符号的方式。有人可以给我一个更好的描述来帮助我想象这个吗?

您可以在 mit-scheme 中运行代码。

0 投票
4 回答
651 浏览

python - python延迟执行

要在 Lisp 中将流实现为延迟列表,建议使用 Lisp 宏。

Python 和 Perl 会怎样做同样的事情?

编辑。是否可以使用如此酷的构造作为流

在 Python 和 Perl 等语言中

0 投票
1 回答
864 浏览

lisp - LISP SICP 视频讲座 2a 平均潮湿问题

在下面的代码中,我试图了解变量如何whatami获取其值。在遵循逻辑时,我看到过程(lambda (y) (/ x y))是我传递给方法的参数average-damp,并且在该方法中表示为变量f。似乎需要执行,但我无法弄清楚执行的顺序(/ x y)(average (f whatami) whatami)任何帮助表示赞赏。

0 投票
1 回答
293 浏览

clojure - 使用 Clojure 帮助替换模型 [Sicp]

我正在研究 sicp 书,我对程序的替换模型有疑问:

这个过程是练习 1.10 的一部分。如果我使用以下参数(A 1 10)在 REPL 中运行该函数,结果为 1024。我决定使用替换模型验证结果,但结果为 2048。

这是我写的替代模型。有问题,但我不知道是什么。

谁能指出我做错了什么?我很抱歉这个问题的长度。