Интерпретатор Lisp / Scheme без Emacs?

Я давно хотел научиться Лиспу. Однако все интерпретаторы, о которых я слышал, используют некоторые разновидности emacs. Есть ли какие-нибудь интерпретаторы командной строки, чтобы я мог ввести это в командную строку:

lispinterpret sourcefile.lisp

точно так же, как я могу запускать perl или python.

Хотя я также хотел бы поближе познакомиться с Emacs (хотя бы для того, чтобы не расстраиваться, когда я работаю с кем-то, кто использует Emacs), я бы предпочел отделить изучение Emacs от изучения Lisp.

Изменить: я действительно хочу следовать SICP, который использует схему, поэтому ответ о схеме был бы более полезным. Я просто не очень хорошо разбираюсь в различиях.

Ответов (12)

Похоже, Steel Bank Common Lisp (SBCL) также обслуживает то, что вы хотите:

http://www.sbcl.org/manual/#Shebang-Scripts

SBCL является одновременно высококлассным и открытым исходным кодом.

Я часто пишу сценарии оболочки lisp, которые начинаются с этой строки:

#! / usr / bin / clisp

Тогда вам даже не нужно вводить «lispinterpret» в командной строке. Просто отметьте исполняемый файл скрипта и запустите его напрямую.

Никакой "интерпретатор" не требует emacs.

Кроме того, emacs может запускать elisp без головы.

Большинство знакомых мне интерпретаторов схем можно запускать из командной строки. (Большая часть приведенного ниже списка взята из сравнительной таблицы на странице Alexey Radul's Scheme Implementation Choices . На schemewiki есть более обширный список, но эта страница не сразу предоставляет синтаксис вызова командной строки.)

Вот как вы запускаете несколько реализаций из командной строки:

Вы пробовали Allegro CL с http://www.franz.com/?

Оформить заказ на вики-ссылку CLISP, которая т. Е. был использован Полом Грэмом

Прямая ссылка

Вы также можете попробовать DrScheme , который, хотя и не совсем автономный интерпретатор, не является emacs :)

По сути, это простая среда IDE, в которой есть область для ввода кода, который может быть выполнен как файл, а затем еще одна область, которая является запущенным интерпретатором, с которым вы можете взаимодействовать.

(Также найдите подкасты UC Berkeley CS61A и послушайте их, а также прочтите SICP)

Еще один хороший диалект шепелявки - cmucl . Раньше они любили хвастаться, что они «самые быстрые».

@Nathan: Я обновил ссылки Common Lisp, потому что вы спрашивали о Lisp (особенно в отношении Emacs Lisp). Однако Common Lisp сильно отличается от Scheme. Программа, написанная для одного, вряд ли будет работать на другом.

Как вы упомянули, SICP предназначен для изучения Scheme, а не Lisp (или, по крайней мере, не Common Lisp и не Emacs Lisp). Есть некоторое совпадение в принципах, однако вы не можете просто скопировать и вставить код из SICP и ожидать, что он будет работать в любой системе Common Lisp или Emacs Lisp. :-)

Наиболее широко используемой IDE для Common Lisp, особенно в подмножестве свободного программного обеспечения сообщества, является SLIME , работающий на Emacs. Вы можете использовать любой компилятор CL, который вам нравится, и вызывать исходные файлы Lisp описанным вами способом, но если вы это сделаете, вы не сможете воспользоваться преимуществами многих динамических функций Lisp, которые так невероятно полезны при разработке вашего приложения.

Я предлагаю вам взглянуть на это демонстрационное видео SLIME, чтобы понять, что я имею в виду, хотя на данный момент оно может быть немного устаревшим.

Если проблема в том, что вы (думаете, что) не любите Emacs, я серьезно предлагаю вам попробовать его изучить. Шутки в сторону. Нет, правда, я это имел в виду. Однако есть альтернативы, такие как IDE, предоставляемые коммерческими реализациями Lisp, такими как Allegro и Lispworks (доступны бесплатные пробные версии ), или подключаемый модуль Eclipse под названием Cusp .

Если вы ищете схему для работы с SICP, взгляните на схему MIT / GNU.

http://groups.csail.mit.edu/mac/projects/scheme/

http://www.gnu.org/software/mit-scheme/index.html

Кажется, что оболочка схемы подходит для ваших целей. Взгляните на http://www.scsh.net/index.html