寻求Dr. Scheme的简单方案习语

时间:2009-04-11 04:36:55

标签: scheme racket

我正在使用Ableson / Sussman,通过SICP 讲座和伯克利61A讲座,这些都是我的 速度。我想做伯克利的一些家庭作业,但需要 句子的定义,但首先,butlast等等。看起来似乎有一种简单的方案语言内置于Scheme博士,但版本4.1.5,最新的,没有它。来自Planet PLT 我以为我可以简单地添加(require(planet)“simple-scheme.ss”(“dyoo”) 在我的定义窗口中“简单地计划”1 0)))。我得到了

require: PLaneT
could not find the requested package: Server had no matching package:
No package matched the specified criteria

我尝试从here抓取simple.scm文件 并将其粘贴到我的Dr Scheme定义窗口中,但它不起作用:

在高级学生模式中,我明白了 读:非法使用“。”

对于以下代码中的行(lambda(string。args)。

(define whoops
  (let ((string? string?)
    (string-append string-append)
    (error error)
    (cons cons)
    (map map)
    (apply apply))
    (define (error-printform x)
      (if (string? x)
      (string-append "\"" x "\"")
      x))
    (lambda (string . args)
      (apply error (cons string (map error-printform args))))))

在R5RS中我得到了 set!:不能改变模块所需的标识符:number-> string (以下代码的第7行)

(if (char=? #\+ (string-ref (number->string 1.0) 0))
    (let ((old-ns number->string)
      (char=? char=?)
      (string-ref string-ref)
      (substring substring)
      (string-length string-length))
      (set! number->string
        (lambda args
          (let ((result (apply old-ns args)))
        (if (char=? #\+ (string-ref result 0))
            (substring result 1 (string-length result))
            result)))))
    'no-problem)

2 个答案:

答案 0 :(得分:4)

除非您遵循为其设计的示例,否则高级学生永远不会真正为您工作。大多数书籍和例子都会假设R5RS或类似的东西。我建议使用Pretty Big语言,因为它包括R 5 RS,以及PLT require语法和其他一些东西。

为了使用PLaneT中的Simply Scheme包,您需要使用新的require语法(您可以在package listing page上找到它;看起来docs for the package尚未更新):

(require (planet dyoo/simply-scheme:1:2/simply-scheme))

答案 1 :(得分:2)

跟进; Racket的Simply Scheme支持库可以在以下位置找到: http://planet.plt-scheme.org/display.ss?package=simply-scheme.plt&owner=dyoo 我在http://planet.plt-scheme.org/package-source/dyoo/simply-scheme.plt/2/1/planet-docs/manual/index.html中做了一些简单的文档更新。