gpt4 book ai didi

scheme - 使用 trace 显示 Racket 中的过程

转载 作者:行者123 更新时间:2023-12-04 18:41:52 25 4
gpt4 key购买 nike

我一直在研究 SICP 的最后几个练习 ch 1,其中几个练习使用了高阶函数。目前,我正在尝试在我的 1.45 解决方案中调试一个问题,这会引发数量不匹配。引起误差的函数是两次对定点函数求解器应用平均运算的结果。

如果我可以转储某种程序的表示形式,这将使我的调试工作变得容易得多,因为该程序已经运行过几个其他程序,这些程序会在它引发错误之前对其进行更改。我查看了 DrRacket 的调试文档,添加了 (require racket/trace)(require errortrace)到我的模块,我想我熟悉调试系统的所有功能——但我仍然不知道如何做到这一点。

DrRacket 的答案是理想的,但任何事情都有帮助。

最佳答案

添加(需要 Racket /跟踪)不会在控制台中显示任何程序。您想使用 (trace function-name)当您在跟踪调用中使用给定函数时,这将在控制台中打印紫色(默认颜色)行。例子

(define sum (λ (x y) (+ x y)))
(define multiply
(λ (x y)
(multiply-aux x y x)
))
(define multiply-aux (λ (x y res)
(if (= y 0) 0
(if (= y 1) res
(multiply-aux x (- y 1) (sum res x))))))
(require racket/trace)
(trace sum)

在控制台中:
> (multiply 4 5)
>(sum 4 4)
<8
>(sum 8 4)
<12
>(sum 12 4)

在 DrRacket 6.0.1 中测试

如果您需要更多帮助,请告诉我。

关于scheme - 使用 trace 显示 Racket 中的过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24226924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com