Подтвердить что ты не робот

Маленький Schemer и Racket

Я начинаю читать Little Schemer, и теперь вместо PLT Scheme у нас есть Racket. Я хотел бы знать, подходит ли Racket для выполнения упражнений в книге или мне нужно получить еще один настоящий компилятор Scheme. Прежде чем я забыл сказать вам, моя ОС - Windows x64.

Книга, язык и парадигма достаточно сложны, я бы хотел избежать борьбы с компилятором.

Большое спасибо заранее.

4b9b3361

Ответ 1

DrRacket - это (r) эволюция DrScheme; DrRacket отлично работает для упражнений в "The Little Schemer". Только не забудьте:

  • В диалоговом окне Language выберите "Использовать язык, объявленный в источнике"
  • Напишите #lang racket в верхней части каждого создаваемого файла.
  • Реализуйте предикат atom? в каждом файле, как описано в самом начале книги
  • Если вы собираетесь повторно выполнить существующую процедуру, сделайте это в отдельной вкладке или окне, потому что попытка переписать процедуру в окне редактирования приведет к ошибке duplicate definition for identifier. Если необходимо, используйте несколько файлов для сохранения описаний процедур.

Ответ 2

Вам действительно нужна функция atom?. То, что описано в предисловии к книге, в основном:

(define (atom? x)
  (and (not (pair? x)) (not (null? x))))

Как уже упоминалось, он должен удовлетворять этому тесту:

(atom? '()) ;=> #f

Обратите внимание, что существует также определение в Racklog, которое не будет удовлетворять этому тесту.

Более подробное обсуждение atom? здесь.

Несмотря на предложение книги реализовать add1 и sub1, Racket уже предоставляет их.

Кстати, я использую Vim для редактирования Racket, но несколько других редакторов способны.

Ответ 3

У меня был автор книги в качестве профессора. Теперь он использует Racket, но он использует Emacs в качестве текстового редактора.

Ответ 4

Ракетка/Схема взаимозаменяемы. Вы должны быть в состоянии ответить на любые упражнения с ним. Удачи.

Кроме того, я рекомендую загрузить Dr. Racket в качестве вашего переводчика.