我正在尝试遵循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
我已经安装了sicp软件包。 有人知道是什么问题吗?
答案 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
。