Я давно хотел научить себя Лиспу. Тем не менее, все интерпретаторы, о которых я слышал, имеют какой-то вкус emacs. Существуют ли какие-либо интерпретаторы командной строки, чтобы я мог ввести это в командной строке:
lispinterpret sourcefile.lisp
так же, как я могу запустить Perl или Python.
Хотя я также хотел бы поближе познакомиться с Emacs (хотя бы не разочаровываться, когда я работаю с кем-то, кто использует Emacs), я бы предпочел отделить изучение Emacs от изучения Lisp.
Изменить: Я на самом деле хочу следовать SICP, который использует Схему, поэтому ответ о Схеме будет более полезным. Я просто не знаком с различиями.
Оформить заказ CLISP вики-ссылку то есть. был использован Полом Грэмом
Прямая ссылка
Вы пробовали Allegro CL с http://www.franz.com/ ?
Вы также можете попробовать DrScheme , который не является хотя бы отдельным интерпретатором, но не является emacs :)
По сути, это простая IDE, в которой есть область для ввода кода, которая может быть выполнена в виде файла, а затем еще одна область, представляющая собой работающий интерпретатор, с которым вы можете взаимодействовать.
(Кроме того, найдите подкасты UC Berkeley CS61A и прослушайте их, а также прочитайте SICP)
Похоже, Steel Bank Common Lisp (SBCL) также обслуживает то, что вы хотите:
http://www.sbcl.org/manual/#Shebang-Scripts
SBCL - это как первоклассный, так и открытый код.
@Nathan: Я обновил ссылки на Common Lisp, потому что вы спрашивали о Lisp (особенно со ссылкой на Emacs Lisp). Однако Common Lisp очень отличается от Scheme. Программа, написанная для одного, вряд ли будет работать на другом.
Как вы упомянули, SICP предназначен для изучения Scheme, а не Lisp (или, по крайней мере, не Common Lisp и не Emacs Lisp). Существуют некоторые совпадения в принципах, однако вы не можете просто вырезать и вставить код из SICP и ожидать, что он будет работать в любой системе Common Lisp или Emacs Lisp. :-)
Еще один хороший диалект лиспа - cmucl . Они любили хвастаться тем, что были «самым быстрым» языком.
На самом деле наиболее широко используемой IDE для Common Lisp, особенно в сообществе свободного программного обеспечения, является SLIME , работающий на Emacs. Вы можете использовать любой предпочитаемый вами CL-компилятор и вызывать исходные файлы Lisp так, как вы описываете, но если вы это сделаете, вы не воспользуетесь многими динамическими функциями Lisps, которые так невероятно полезны при разработке вашего приложения.
Я предлагаю вам взглянуть на это демонстрационное видео SLIME, чтобы понять, что я имею в виду, даже если в данный момент он может быть немного устаревшим.
Если проблема в том, что вам (кажется, вам) не нравятся Emacs, я серьезно советую вам попробовать его изучить. Шутки в сторону. Нет, правда, я имею в виду это. Однако есть альтернативы, такие как IDE, предоставляемые коммерческими реализациями Lisp, такими как Allegro и Lispworks (доступны бесплатные пробные версии ), или подключаемый модуль Eclipse под названием Cusp .
Я часто пишу сценарии оболочки lisp, которые начинаются с этой строки:
#! / USR / бен / CLISP
Тогда вам даже не нужно вводить «lispinterpret» в командной строке. Просто отметьте исполняемый файл скрипта и запустите его напрямую.
Никакой «переводчик» не требует emacs.
Также emacs может запускать elisp без головы.
Если вы ищете Схему для работы с SICP, взгляните на Схему MIT / GNU
Похоже, схема оболочки подходит для ваших целей. Взгляните на http://www.scsh.net/index.html
Большинство знакомых мне схемных интерпретаторов можно запустить из командной строки. (Большая часть списка, приведенного ниже, извлечена из сравнительной таблицы на странице « Выбор реализации схемы» Алексея Радула . На сайте schewiki есть более обширный список, но эта страница не обеспечивает немедленный синтаксис вызова командной строки.)
Вот как вы запускаете несколько реализаций в командной строке:
Chez Схема :
scheme
,petite
Схема MIT :
mit-scheme
Схема 48 :
scheme48
RScheme :
rs
Ракетка :
racket
(Но я рекомендую попробовать DrRacket IDE, особенно для начинающих.)Хитрость :
guile
Биглоо :
bigloo
Цыпленок :
csi
Гамбит :
gsi
Гош :
gosh
IronScheme :
IronScheme.Console
Кава :
kawa
,java kawa.repl
Воровство :
larceny
СКМ :
scm
rlwrap <commandrepl>
). Ваши настройки readline (~ / .inputrc file) вступят в силу, так что вы даже можете использовать режим vi readline, если хотите.