无法在Scheme中加载文件,(使用Simply Scheme Book和PLT Scheme)

时间:2011-12-04 23:46:36

标签: scheme racket

我正在使用PLT Scheme(DrScheme)。我想加载一个我从here获得的文件。要加载文件,我进入PLT Scheme并在交互窗口(或底部窗口)中输入(加载“simply.scm”),然后按回车键。它给了我这个错误:

simply.scm:20:12:set!:不能改变模块所需的标识符:number-> string

我不知道如何解决这个问题,请协助......

额外信息:我正在学习Brian Harvey和Matthew Wright的书“简单计划引入计算机科学

此外,链接需要一点点加载,但它确实有效,我认为他们有一个非常旧的服务器上的文件,所以这可能是原因。

2 个答案:

答案 0 :(得分:8)

打开DrScheme(或DrRacket,因为现在调用该软件的较新版本);从语言菜单中选择“选择语言...”,并确保选中“使用源中声明的语言”。

然后在你文件的顶部,放下以下两个标题行,然后是你想要的任何代码(我从第一章中选择了一个例子):

#lang racket
(require (planet dyoo/simply-scheme))

(define (pigl wd)
  (if (member? (first wd) 'aeiou)
      (word wd 'ay)
      (pigl (word (butfirst wd) (first wd)))))

然后点击“运行”。这应该允许您在“交互”窗格中键入表达式来评估它们。

或者,您可以将上面的两行替换为:

#lang planet dyoo/simply-scheme

但是,“交互”窗格中未启用“简单方案”语言。

您可以点击the URL provided by Chris上的'文档'链接找到此DrScheme / Racket simply-scheme库的文档。

答案 1 :(得分:7)

您应该使用Racket Simply Scheme module。您链接的文件与Racket不兼容。

更具体地说,在Racket中,不允许使用set!覆盖现有的函数绑定,这就是该文件的作用。 (从技术上讲,它也可能破坏其他Scheme实现,所以这不是“Racket quirk”或其他任何东西。)