Для начинающего я бы очень рекомендовал DrRacket (бывший Dr. Scheme), поскольку он предоставляет вам действительно приятную среду для работы, поддерживает множество диалектов Scheme и дает очень хорошую информацию о сбоях и отладке. Я считаю, что большинство реализаций Scheme - это интерпретаторы, хотя возможно, что существует и компилятор.
Если вы, как и я, любитель командной строки, то в качестве альтернативы вы можете запустить непосредственно интерпретатор racket, который по сути является тем же самым, что и Dr. Racket, но без графической среды и интерфейса командной строки. Или запустите исходный файл командой #! /usr/bin/env racket
и сделайте его исполняемым с помощью chmod +x source.rkt
.
Я знаю, что вы уже приняли ответ, но для будущих посетителей этого вопроса я рекомендую Chicken Scheme . Он имеет тенденцию создавать исполняемые файлы намного меньшего размера, чем mzscheme. Возьмем, к примеру, следующее приложение hello world:
(define (say-hello name)
(print (string-append "Hello, " name))
(newline))
(say-hello "Earthling")
Скомпилировано с помощью mzc --exec mztest hello.scm: 3.3M
Скомпилировано с помощью csc hello.scm -o ctest: 16k
И если вам нужна библиотека поддержки, Chicken предоставляет Eggs Unlimited , что похоже на PlaneT для mzscheme (или gems для ruby).
Я бы рекомендовал не беспокоиться о том, реализован ли он в виде компилятора, интерпретатора или их комбинации - особенно для начала, качество файлов справки (например) будет иметь гораздо большее значение, чем то, как именно оно реализовано.
Что касается того, Схема PLT - это то, что я использую (безусловно) чаще всего.