如何在repl中运行SICP / scheme的图片语言示例?

时间:2016-10-06 02:58:14

标签: scheme sicp

我是SICP的初学者。我正在阅读2.2.4部分,图片语言。我坚持使用它的例子。我不明白,如何运行这些例子?

如书中所述, wave 应该是一个原始程序。但是当我尝试执行它时, REPL 会抛出错误,如下所示

1 ]=> wave

;Unbound variable: wave

同样,当我尝试执行本节的第一个示例时, REPL 会抛出错误

1 ]=> (define wave2 (beside wave (flip-vert wave)))

;Unbound variable: wave

我不明白,出了什么问题?任何帮助,将不胜感激。谢谢。

1 个答案:

答案 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))))

这是对Which lang packet is proper for SICP in Dr.Racket?

的答案的简短版本