我是SICP的初学者。我正在阅读2.2.4部分,图片语言。我坚持使用它的例子。我不明白,如何运行这些例子?
如书中所述, wave 应该是一个原始程序。但是当我尝试执行它时, REPL 会抛出错误,如下所示
1 ]=> wave
;Unbound variable: wave
同样,当我尝试执行本节的第一个示例时, REPL 会抛出错误
1 ]=> (define wave2 (beside wave (flip-vert wave)))
;Unbound variable: wave
我不明白,出了什么问题?任何帮助,将不胜感激。谢谢。
答案 0 :(得分:3)
在DrRacket IDE中有一个SICP compatibility language。使用DrRacket有助于格式化代码,识别错误并且它具有调试器。它还支持标准Scheme以及它自己的方言,racket,它非常相似,但有很多像现代语言一样的库。
安装(安装DrRacket之后)
从终端运行:
raco pkg install sicp
你得到了很多输出,也许还有一些警告。重新启动DrRacket并将#lang racket
替换为#lang sicp
。要使图片语言添加(#%require sicp-pict)
,因此这个示例应该可以正常工作:
#lang sicp
(#%require sicp-pict)
(paint-hires (below (beside diagonal-shading
(rotate90 diagonal-shading))
(beside (rotate270 diagonal-shading)
(rotate180 diagonal-shading))))
的答案的简短版本