Маленький Schemer и Racket
Я начинаю читать Little Schemer, и теперь вместо PLT Scheme у нас есть Racket. Я хотел бы знать, подходит ли Racket для выполнения упражнений в книге или мне нужно получить еще один настоящий компилятор Scheme. Прежде чем я забыл сказать вам, моя ОС - Windows x64.
Книга, язык и парадигма достаточно сложны, я бы хотел избежать борьбы с компилятором.
Большое спасибо заранее.
Ответы
Ответ 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 в качестве вашего переводчика.