Невозможно загрузить файл в схеме (используя просто книгу схем и схему PLT) - PullRequest
3 голосов
/ 05 декабря 2011

Я использую схему PLT (DrScheme).Я хочу загрузить файл, полученный с здесь .Чтобы загрузить файл, я захожу в схему PLT и в окне взаимодействий (или в нижнем окне) набираю (загрузить «simply.scm») и затем нажимаю ввод.Это дает мне эту ошибку:

simply.scm: 20: 12: set !: не может изменить идентификатор модуля в: number-> string

Я понятия не имею, как это исправить,Пожалуйста, помогите ...

Дополнительная информация: я учусь из книги Просто схема, представляющая информатику Брайана Харви и Мэтью Райта

Кроме того, ссылка принимаетнемного долго загружаться, но это работает, я думаю, что они имеют файлы на действительно старом сервере, поэтому может быть поэтому.

Ответы [ 2 ]

8 голосов
/ 05 декабря 2011

Открыть 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

Но тогда язык Простая схема не будет включен на панели "Взаимодействия".

Вы можете найтидокументацию к этой библиотеке DrScheme / Racket simply-scheme, нажав ссылку 'docs' на URL, предоставленном Крисом .

7 голосов
/ 05 декабря 2011

Вы должны использовать модуль Racket Simply Scheme .Файл, с которым вы связаны, несовместим с Racket.

В частности, в Racket вам не разрешено использовать set! для перезаписи существующих привязок функций, что и делает этот файл.(Технически это может потенциально нарушить и другие реализации Схемы, так что это не «Причуда Ракетки» или что-то в этом роде.)

...