DrRacket 解释器是否使用基于 SICP 练习 1.5 的正态顺序评估?
人们必须根据以下值做出决定: (测试 0 (p)) 其中 test 定义为 : (define (test x y) (if (= x 0) 0 y)) 并且 p 定义为 : (define (p) (p)) 当我评…
附加到表单如何工作? (SICP 的逻辑编程部分)
我目前正在学习 SICP 的逻辑编程部分,但我陷入了有关逻辑推论的示例中,尤其是附加到表单规则。它们如何工作?我不太明白的是第二条规则 cdr-downs …
为什么我的连续分数不能正确近似?
阅读更多 SICP,我陷入了 练习 1.3.8。我的代码对于近似 1/phi 可以正常工作,但对于近似 e - 2 不起作用。 (define (cont-frac n d k) (define (frac…
为什么平均阻尼能神奇地加速定点计算器的收敛速度?
我正在阅读 SICP,作者复习了计算函数不动点时的平均阻尼技术。我知道在某些情况下这是必要的,即平方根以抑制函数 y = x/y 的振荡,但是,我不明白为…
在Scheme中是否有Common Lisp的*print-circle*的等价物?
我正在Scheme(SICP练习3.23)中研究双端队列,并且我有一个简单的双向链表实现,我想测试一下,但我似乎不知道如何在中打印出循环列表方案(mit-sche…
SICP、Scheme、DrRacket 问题:定时器/分析器功能?
我目前正在尝试做练习1.22,它需要一个名为runtime 的函数,它返回系统已运行的毫秒数。然而我的环境(R5RS)似乎没有这个。它也没有时间、当前毫秒、…
Dr Racket 与 SICP 的问题
我正在通过 SICP 进行工作。目前,在第一章中,我在让 Racket 重新定义“基元”时遇到问题。例如,我的印象是我应该能够任意执行 (define + 5) ,这样…
在方案中使用 lambda 而不是 let
在 SICP 1.2.1 中,有一个生成有理数的函数,如下所示: (define (make-rat n d) (let ((g (gcd n d))) (cons (/ n g) (/ d g)))) 我只是好奇如何使用…
在使用 DrScheme 的 SICP 练习 2.26 中,为什么 cons 返回一个列表,而不是一对列表?
在 SICP 练习 2.26 中,给出了这个方案代码: (define x (list 1 2 3)) (define y (list 4 5 6)) 然后给出了这个 cons 调用: (cons x y) 我期望会产…