Ищу просто Схемы идиомы для доктора Схемы - PullRequest
2 голосов
/ 11 апреля 2009

Я прорабатываю SICP, используя Ableson / Sussman лекции и лекции Беркли 61А, которые являются гораздо более моим скорость. Я хотел бы сделать домашнюю работу в Беркли, но мне нужна определения для предложения, но первое, но последнее и так далее. Похоже, когда-то в Dr. Scheme был встроен простой язык схем, но в самой последней версии 4.1.5 его нет. От Планета PLT Я думал, что я мог бы просто добавить (требовать (планета "simply-схема. "просто-схема" 1 0))) в моем окне определения. Я получаю

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

Я попытался получить файл simply.scm из здесь и вставил его в окно определения моего доктора Схемы, но оно не работает:

В режиме Advanced Student я получаю читайте: незаконное использование "."

Для строки (лямбда (строка. 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 ]

4 голосов
/ 11 апреля 2009

Продвинутый ученик никогда не будет работать на вас, если вы не будете следовать примерам, которые были разработаны для него. В большинстве книг и примеров предполагается, что R 5 RS или что-то в этом роде. Я бы порекомендовал использовать язык Pretty Big, поскольку он включает в себя как R 5 RS, а также синтаксис PLT require, так и некоторые другие вещи.

Чтобы использовать пакет Simply Scheme от PLaneT, вам нужно будет использовать новый синтаксис require (вы можете найти его на странице списка ; он выглядит как документ для пакет не обновлялся):

(require (planet dyoo/simply-scheme:1:2/simply-scheme))
2 голосов
/ 27 августа 2011

продолжение; библиотеку поддержки Simply Scheme для Racket можно найти по адресу: http://planet.plt -scheme.org / display.ss? Пакет = просто-scheme.plt и владелец = dyoo Я сделал несколько легких обновлений документации в http://planet.plt -scheme.org / package-source / dyoo / simply-circuit.plt / 2/1 / planet-docs / manual / index.html .

...