油漆工人:油漆工人中的未绑定标识符

时间:2019-01-14 02:11:07

标签: scheme racket sicp

我正在尝试遵循Which lang packet is proper for SICP in Dr.Racket?

的方法和步骤

但是当我在接受的答案中运行代码

#lang sicp

(paint-highres  (below (beside diagonal-shading
                         (rotate90 diagonal-shading))
                 (beside (rotate270 diagonal-shading)
                         (rotate180 diagonal-shading))))

我遇到错误

 paint-hires: unbound identifier in: paint-hires

Dr.Racket running scheme - paint error

我已经安装了sicp软件包。 有人知道是什么问题吗?

2 个答案:

答案 0 :(得分:1)

paint-hires函数是原始MIT方案实现的剩余部分。当时,“高分辨率”在实验时使用起来太慢了-因此paint-hires被用来获取“最终”图像。

将最初的MIT计划的SICP图片语言的实现移植到PLT计划paint-hires时被保留。

最近(在一两年内)SICP图片语言在现代球拍上重新实现。这使您能够以您选择的分辨率,颜色使用图片语言! (最初的MIT计划用于单色显示器)

复制以下文件:“ main.rkt”和einstein2.jpg”,并将它们保存在同一文件夹中。

在DrRacket中打开“ main.rkt”并运行它。

查看底部的示例。

在“ main.rkt”底部添加您自己的程序。

浏览文件以了解如何使用颜色等。

两个文件都在这里:     https://github.com/sicp-lang/sicp/tree/master/sicp-pict

答案 1 :(得分:0)

@ sorawee-porncharoenwase感谢您提供的文档链接。 @soegaard感谢您对DrRacket的最新更改的了解。

最终对我有用的是这个

#lang sicp
(#%require sicp-pict)

(paint (below (beside diagonal-shading
                      (rotate90 diagonal-shading))
              (beside (rotate270 diagonal-shading)
                      (rotate180 diagonal-shading))))

我认为文档错误地说要使用paint-hires