paint-hires: 未绑定标识符 in: paint-hires

paint-hires: unbound identifier in: paint-hires

我试图从 Which lang packet is proper for SICP in Dr.Racket?

中了解如何进行方案和 sicp

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

#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

我已经安装了 sicp 包。 有人知道问题出在哪里吗?

paint-hires 函数是原始 MIT Scheme 实现的遗留形式。那时 "high resolution" 在试验时使用起来太慢了 - 所以 paint-hires 被用来获得 "final" 图像。

当 SICP 图片语言的原始 MIT Scheme 实现被移植到 PLT Scheme 时 paint-hires 被保留。

最近(一两年内)在现代 Racket 上重新实现了 SICP 图片语言。这使您能够使用具有您选择的分辨率和颜色的图片语言! (原来的 MIT Scheme 是用在单色显示器上的)等等。

复制:"main.rkt" 和 einstein2.jpg" 并将它们保存在同一文件夹中。

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

查看底部示例。

在"main.rkt"底部添加自己的程序。

查看文件以了解如何使用颜色等

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

@sorawee-porncharoenwase 感谢您提供文档 link。 @soegaard 感谢最近对 DrRacket 所做更改的上下文。

最终对我有用的是这个

#lang sicp
(#%require sicp-pict)

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

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