问题标签 [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.
lisp - Scheme 和 Common Lisp 之间的实际区别是什么?(或任何其他两种 Lisp 方言)
注意:我不是在问要学哪个,哪个更好,或者类似的东西。
我选择了 SICP 的免费版本,因为我觉得它读起来会很好(我听说过关于它的好东西,而且我对这种编程方面很感兴趣)。
我知道 Scheme 是 Lisp 的一种方言,我想知道:Scheme 和 Common Lisp 之间的实际区别是什么?
似乎有很多关于“CL 有一个更大的标准库......方案不适合现实世界的编程......”但没有实际的东西说“这是因为 CL 是这个/有这个”。
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)
我对最后一个有问题。我想出了一种使用反引号和取消引号的方法,但是在线教程不会接受答案。使用鸡计划的解释器:
还有另一种方法可以做到这一点吗?
scheme - 如何在 SICP、Scheme、Exercise 2.78 等中获取函数 put 和 get
我正在尝试在 SICP 中做练习 2.78,但 put 和 get 的功能是未知的。我尝试了多种语言,例如相当大、球拍、r5rs、mit-scheme、mzscheme 等。我什至下载了 SICP 支持 (http://www.neilvandyke.org/sicp-plt/),但无济于事。我怎样才能让这些功能发挥作用?
scheme - Scheme、SICP、R5RS,为什么延迟不是特殊形式?
这与 SICP 的第 3.5 章有关,其中正在讨论流。这个想法是:
不应该评估 cons-stream 的第二部分,所以它不应该打印“hey”。这确实发生了,我得到以下输出:
嘿(1 . #< 承诺 >)
所以我的结论是延迟没有作为一种特殊的形式来实现?还是我做错了什么?我使用以下实现:
延迟是默认的 R5RS 实现。这是实施中的错误,还是我没有正确或理解它?
clojure - 为什么在 Clojure 中尝试使用辛普森规则时会出现转换错误?
我正在尝试使用 Clojure 完成 SICP 中的一些练习,但我当前执行辛普森规则的方法出现错误(例如 1-29)。这与懒惰/急切的评估有关吗?有想法该怎么解决这个吗?错误和代码如下:
java.lang.ClassCastException:user$simpson$h__1445 不能在 clojure.lang.Numbers.divide (Numbers.java:139) 处转换为 java.lang.Number
这是代码:
lisp - 为什么 apply 对 lisp 评估器如此重要?
我已经阅读了 SICP 的第 4 章,发现第一节列出了实现评估器最重要的功能,eval
并且apply
,我知道这eval
很重要,但为什么apply
这么重要?对于某些语言,在 Javascript 中完全没有apply
这样的语言。
编辑:对不起,我错了,在 Javascript 中没有应用,请忽略它。
scheme - 使用流生成带有交替符号的数字的更好解释
这里的代码可以生成这样的数字 [1 -2 3 -4 5 -6 7 -8 9 -10 ...]
我不太明白它产生交替符号的方式。有人可以给我一个更好的描述来帮助我想象这个吗?
您可以在 mit-scheme 中运行代码。
lisp - LISP SICP 视频讲座 2a 平均潮湿问题
在下面的代码中,我试图了解变量如何whatami
获取其值。在遵循逻辑时,我看到过程(lambda (y) (/ x y))
是我传递给方法的参数average-damp
,并且在该方法中表示为变量f
。似乎需要执行,但我无法弄清楚执行的顺序(/ x y)
。(average (f whatami) whatami)
任何帮助表示赞赏。
clojure - 使用 Clojure 帮助替换模型 [Sicp]
我正在研究 sicp 书,我对程序的替换模型有疑问:
这个过程是练习 1.10 的一部分。如果我使用以下参数(A 1 10)在 REPL 中运行该函数,结果为 1024。我决定使用替换模型验证结果,但结果为 2048。
这是我写的替代模型。有问题,但我不知道是什么。
谁能指出我做错了什么?我很抱歉这个问题的长度。