问题标签 [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.
sicp - SICP 练习 1.19
这是生成斐波那契数的过程,这里是参考:http ://sicp.org.ua/sicp/Exercise1-19
据说我们可以将程序视为“a <- bq + aq + ap and b <- bp + aq”。我的问题是作者(或其他人)如何想到这个好主意?必须是这种形式?
clojure - Clojure-为什么这段代码在 clojure 中不起作用,我是否缺少一些惰性评估陷阱?
我是 clojure 的新手,并通过 SICP 学习它。
我无法让 SCIP 1.3.1 中的这段代码工作。
我错过了什么?
这是错误消息:
lisp - Scheme 中是否有与 Lisp 的“运行时”原语等价的东西?
根据SICP 第 1.2.6 节,练习 1.22:
大多数 Lisp 实现都包含一个称为 runtime 的原语,它返回一个整数,该整数指定系统运行的时间量(例如,以微秒为单位)。
我正在使用DrScheme,其中运行时似乎不可用,所以我正在寻找一个好的替代品。我在 PLT-Scheme Reference 中发现有一个current-milliseconds原语。有谁知道Scheme中是否有分辨率更好的计时器?
common-lisp - 使用 change-class 从数字创建多项式对象
我已经按照 SICP 2.5.3 中描述的方式编写了一个多项式类(使用 defclass 除外)。我希望能够无缝地添加和乘以多项式和常规数字,但我不能让 change-class 接受一个数字。
我试图通过将类从整数更改为浮点数来简化问题:
但这给了我错误:
我从(fyi)收到相同形式的错误:
我将继续执行手动转换,但我更喜欢使用内置的 clos 工具。
正如 Xach 指出的那样,我可以使用强制或浮点数将 4 更改为浮点数。这旨在作为我尝试做的一个更简单的示例,并消除我的 update-instance-for-different-class 错误的任何可能性。
这是我尝试过但不起作用的较长版本:
我仍然收到类似上面示例的错误:
scheme - 方案程序问题
我定义了 Scheme 过程以返回另一个带有 2 个参数的过程:
如果我使用带有 2 个参数 10 和 0.0001 的 sin 程序运行此程序,那么就可以了
如果我递归地运行这个过程,那么它有错误
那么谁能告诉我我的问题在哪里?先感谢您 !!!
PS:这是SICP练习1.44的一部分
scheme - Scheme中循环定义的问题
我目前正在通过 SICP 使用 Guile 作为练习的主要语言。在执行第 3.5 章的练习时,我发现了一个奇怪的行为。我已经在各种平台上使用 Guile 1.4、Guile 1.8.6 和 Guile 1.8.7 重现了这种行为,并且确信它不是特定于我的设置。
此代码工作正常(并计算 e):
以下代码应给出相同的结果:
但它会产生错误消息:
因此,当嵌入到过程定义中时, (define y ...) 不起作用,而在 REPL 的全局环境中的过程之外它可以正常工作。
我在这里做错了什么?如有必要,我也可以发布辅助代码(即积分、流图等的定义)。除了 cons-stream 的系统相关代码之外,它们都在书中。我自己对 Guile 的 cons-stream 实现如下:
lambda - 使用 lambda 而不是 let in 方案
在 SICP 1.2.1 中有一个生成有理数的函数,如下所示:
我只是好奇如何使用 lambda 而不是 let 来实现相同的功能,而无需两次调用 GCD。我自己想不通。
scheme - 在使用 DrScheme 的 SICP 练习 2.26 中,为什么 cons 返回一个列表,而不是一对列表?
在 SICP 练习 2.26 中,给出了此方案代码:
然后给出这个 cons 调用:
我预计会产生一对列表,((1 2 3) (4 5 6))
但解释器给出了
((1 2 3) 4 5 6)
……一个包含 4 个元素的列表,第一个是一个列表。为什么 y 被区别对待?我尝试查找其他 SICP 答案以获得解释,但找不到令人满意的答案。那么任何Scheme / Lisp专家能否对这方面的缺点有所了解?提前感谢您的任何见解。
lisp - “计算机程序的结构和解释”的封面到底在写什么?
《计算机程序的结构和解释》封面到底是关于什么的?我的意思是我知道“eval”、“apply”和“λ”都是什么意思,但我很难理解图片的其余部分。
娘娘到底是谁?她为巫师工作吗?她为什么指着桌子?她是指着那个小碗状的东西吗?还是书?还是一般的桌子?她是在试图告诉巫师他应该对桌子或桌子上的物品应用某种 Lisp 魔法吗?还是她只是在告诉他一些平淡无奇的事情,比如他的食物变冷了?
那张桌子上看起来像……一条腿……末端有一只脚的那条腿到底是什么鬼(因为腿往往有)?桌子如何在一条腿上保持平衡?(或者那是阴影中的另一条腿?)
[注意:如果您想知道,我正在等待一个漫长的构建完成。]