在DrRacket中有一个SICP 兼容语言
1. 从包管理器
在文档中有一个关于如何从 DrRacket 安装它的简单指南:
打开包管理器:在 DrRacket 中选择菜单“文件”,然后选择“包管理器...”。
在“Do What I mean”选项卡中,找到文本字段并输入:“sicp”
单击“安装”按钮。这会产生大量输出。即使有警告也不要担心。
测试一下。确保 DrRacket 在左下角有“Determine language from source”。编写以下程序并单击RUN:
#lang sicp
(inc 42)
; ==> 43
这是一个使用图片语言的更高级的测试,它需要包含在#%require
:
#lang sicp
(#%require sicp-pict)
;; paint-hires / paint-hi-res renamed to just paint
(paint (below (beside diagonal-shading
(rotate90 diagonal-shading))
(beside (rotate270 diagonal-shading)
(rotate180 diagonal-shading))))
单击RUN,您应该会在交互窗口中看到一个朝向中心变亮的正方形。
2 命令行安装
或者,您也可以通过运行以下命令从终端/shell 执行步骤 1-3:
raco pkg install sicp
从这里您可以执行第一个安装说明中的第 4 步来测试它。
3. 旧版本或 DrRacket 使用行星如果raco pkg
不起作用
在 DrRacket 中还有一个旧版本的 SICP 兼容语言。在“从源代码确定语言”处具有左下角选择框时,您可以添加:
#lang planet neil/sicp
作为定义(顶部文本区域)中的唯一行,然后按RUN,它将被安装。重新启动 DrRacket,您会发现它在语言下拉列表中可用。祝你好运。您可能会收到很多红色的错误消息。只需忽略它并重新启动 DrRacket。您可能不再在语言菜单中找到该选项,但是通过使用#lang planet neil/sicp
它启动每个文件仍然可以作为模块语言使用。
从错误来看,似乎与图片语言模块有关。我测试了这个片段,它仍然有效:
(paint-hires (below (beside diagonal-shading
(rotate90 diagonal-shading))
(beside (rotate270 diagonal-shading)
(rotate180 diagonal-shading))))