Scheme 无法简单加载方案代码

Scheme 无法简单加载方案代码,scheme,Scheme,我在加载Berkeley Scheme课程的代码时遇到了麻烦,简单地说就是Scheme,特别是代码。我已经在Scheme的许多不同版本中进行了测试。在Chicken中,我得到以下错误: #;1> (load "simply.scm") ; loading simply.scm ... Error: (symbol->string) bad argument type - not a symbol: #<procedure (? wd)> Call histor

我在加载Berkeley Scheme课程的代码时遇到了麻烦,简单地说就是Scheme,特别是代码。我已经在Scheme的许多不同版本中进行了测试。在Chicken中,我得到以下错误:

#;1> (load "simply.scm")
; loading simply.scm ...

Error: (symbol->string) bad argument type - not a symbol: #<procedure (? wd)>

    Call history:

    <syntax>      (##core#if (empty? x) (##core#begin (whoops "Invalid argument to FIRST: " x)) (##core#if (word? x) (......
    <syntax>      (empty? x)
    <syntax>      (##core#begin (whoops "Invalid argument to FIRST: " x))
    <syntax>      (whoops "Invalid argument to FIRST: " x)
    <syntax>      (##core#if (word? x) (##core#begin (word-first x)) (##core#begin (whoops "Invalid argument to FIRST:...
    <syntax>      (word? x)
    <syntax>      (##core#begin (word-first x))
    <syntax>      (word-first x)
    <syntax>      (##core#begin (whoops "Invalid argument to FIRST: " x))
    <syntax>      (whoops "Invalid argument to FIRST: " x)
    <syntax>      (##core#undefined)
    <syntax>      (word->string word->string)
    <eval>    (word->string word->string)
    <eval>    (string? wd)
    <eval>    (number? wd)
    <eval>    (symbol->string wd)   <--
Welcome to Racket v6.3.
> (load "simply.scm")
simply.scm:20:12: set!: cannot mutate module-required identifier
  in: number->string
  context...:
   /home/hercynian/racket/collects/racket/private/misc.rkt:87:7
。这似乎不是一回事。这超出了我的初学者技能范围。你知道simply.scm有什么问题吗?

它似乎适用于:

guile 2.0.11, 鸡的intepreter 4.10.0, gambit的解释器gsi 4.2.8, 麻省理工学院计划9.1.1 球拍不行,看来你得对这个文件进行大量修改,至少要改变设置!要定义并可能将其全部包装到模块中?-但我不是敲诈的家伙

下面是我要做的:

再次下载这个simply.scm文件,以确保您的checken错误表明您错过了let的某个位置,可能在第264行def中。指单词或单词。第一个

尝试上面的方案实现,如果出现任何错误,请将它们粘贴到此处

如果你没有这些版本,这会很奇怪,但我不知道你的情况,并且你自己在做这门课程,试着不用simple.scm来做,任何时候你发现你的方案中缺少了什么,试着只从simple.scm复制这个定义,或者修改你的代码,这样就不需要了——这是最核心的方法


我从错误中看到您使用的是drracketide或racketbinary

Racketeer和Soer制作了一个Racket模块语言,以支持Racket语言套件中的Simply Scheme。在Racket中,设置左下角的下拉列表,以确定源语言并替换定义窗口,包括以下语言行:

#lang planet dyoo/simply-scheme:2

(se (butlast (bf "this"))
    "world")
然后按RUN。它将下载并安装该语言,然后您将看到答案hi world。第一次你可能会看到一个错误,但我的经验是,它会在连续运行中消失


这些定义将具有中描述的所有简单方案功能。快乐的黑客

你试过狡诈吗?那是我第一次。在过程symbol->string中:位置1的类型参数错误,需要符号…我用guile 2.0.11、chicken的intepreter 4.10.0和gambit的解释器4.2.8对其进行了测试,在这三种情况下,似乎都可以加载。。。你用的是什么版本?试试新的诡计或游戏。再次下载似乎可以解决这个问题。我不知道我的原件有什么问题。忘记区分。。。