Интерпретатор Lisp / Scheme без Emacs? - PullRequest
14 голосов
/ 13 августа 2008

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

lispinterpret sourcefile.lisp

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

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

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

Ответы [ 12 ]

13 голосов
/ 13 августа 2008

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

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

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

7 голосов
/ 13 августа 2008

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

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

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

6 голосов
/ 13 августа 2008

Оформить заказ CLISP wiki-link то есть. был использован Полом Грэмом

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

5 голосов
/ 15 сентября 2008

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

#! / USR / бен / CLISP

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

4 голосов
/ 06 февраля 2013

Большинство знакомых мне схемных интерпретаторов можно запустить из командной строки. (Большая часть списка, приведенного ниже, извлечена из сравнительной таблицы на странице Варианты реализации схемы Алексея Радула. Более обширный список можно найти на schewiki , но эта страница не сразу предоставляет командную строку синтаксис вызова.)

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

3 голосов
/ 10 октября 2008

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

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

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

2 голосов
/ 28 августа 2008

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

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

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

1 голос
/ 25 ноября 2008

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

1 голос
/ 10 октября 2008

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

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

1 голос
/ 14 августа 2008

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

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

...