Простые способы опробовать и протестировать синтаксис Lisp?
Clojure познакомил меня с концепцией синтаксиса Lisp, и мне интересно, но это боль, чтобы получить Clojure repl настроить и использовать его на разных машинах. Какие другие ресурсы существуют там для фактического тестирования "на лету" и игры с синтаксисом Lisp?
Я представляю что-то вроде веб-сайта, на котором вы можете вводить рудиментарный код или надстройку браузера, или даже просто автономное приложение, которое позволяет вам выполнить Lisp (что-то, что работает на Linux/Ubuntu).
Не удалось найти что-нибудь подобное, чтобы запустить меня простым/доступным способом.
Ответы
Ответ 1
SISC Online REPL - именно то, что вам нужно. Он принимает синтаксис схемы, который является вариантом Lisp.
Для автономного приложения мне нравится PLT Scheme, потому что, похоже, он работает на всех платформах, которые я пробовал. Ранее я использовал MIT Scheme на Ubuntu, но решил переключиться, когда я купил новую машину с установленной 64-разрядной версией.
Ответ 2
Рискуя потерять все свои точки ответа, попробуйте newlisp.
Ответ 3
Я использовал LispBox в прошлом. Легко настроить и начать работу, но я должен признать, что Emacs - вторая натура для меня. Если вы не знакомы с этим, вы можете использовать другой редактор, но общение с Emacs поможет вам комфортно жить в Lispвилле.
Ответ 4
Сейчас не трудно добраться до Clojure REPL.
Это должно работать на любой машине, на которой установлена JVM.
Для большего удовольствия установите rlwrap и используйте rlwrap java -jar clojure
.
Ответ 5
Для обучения Lisp личная версия LispWorks в порядке: загрузка LispWorks. Существуют версии для Mac OS X, Windows, Linux и FreeBSD. Все они имеют одинаковые возможности пользовательского интерфейса, и это включает в себя редактор и слушателя - плюс множество других инструментов. В Linux и FreeBSD в настоящее время (LispWorks 5) использует X11/Motif для графического интерфейса - это изменится в будущей версии (LispWorks 6) на GTK. Чтобы запустить его сейчас под Linux, вам нужно установить Мотив. Кроме того, что использование его относительно безболезненно. Есть некоторые ограничения на это (всего 5 часов работы, затем вам нужно сохранить и перезагрузить,...), а полная версия - коммерческая. Но для изучения некоторых основ Lisp это неплохо.
Ответ 6
У Franz есть онлайн REPL для Allegro Common Lisp.
http://www.franz.com/products/allegrocl/prompt/
Ответ 7
codepad.org - это простой простой онлайн-способ ввода и запуска кода (на разных языках, включая Scheme). Я использую его все время для тестирования фрагментов кода для использования в SO-ответах.
Ответ 8
Я не буду редактировать Lisp код без редактора, который сделает то, что Emacs будет делать со следующей конфигурацией:
(define-key lisp-mode-shared-map "[" 'insert-parentheses)
(define-key lisp-mode-shared-map "]" 'move-past-close-and-reindent)
Первая вставляет сбалансированные круглые скобки. Если вы дадите ему числовой префиксный аргумент, он вставляет много вложенных пар. По умолчанию он вставляет один. Если у вас есть отмеченная область текста, она охватывает эту область в самой внутренней вставленной паре. Это означает, что вы никогда не откроете круглую скобку, которая не закрыта.
Последнее сложнее объяснить, поскольку он используется реже. Это скорее команда навигации, чем команда вставки. Он подтверждает, что вы закончили редактирование текущей формы и перемещаете курсор вверх, вниз и мимо него, готовясь к следующей вероятной вставке.
С этими связанными ключами больше не нужно использовать клавишу Shift для доступа к круглым скобкам. Кроме того, это приводит к тому, что ключи круглых скобок связаны как обычные, так как требуется ремонт sexp или буквенный символ скобок. Я украл ключи скобки, потому что они редко используются в Emacs Lisp и Common Lisp. Символы скобок по-прежнему доступны с привязками мета-ключей:
(defmacro make-key-inserter (def)
"Substitute for `self-insert-command'."
`(lambda (arg)
(interactive "*P")
(insert-char ,def (prefix-numeric-value arg))))
(define-key lisp-mode-shared-map "\M-[" (make-key-inserter ?\[))
(define-key lisp-mode-shared-map "\M-]" (make-key-inserter ?\]))
Не важно использовать Emacs, но не соглашайтесь с другим редактором, который не может по крайней мере соответствовать этой возможности. Там также есть целый ряд команд для навигации и управления деревом sexp как деревом. Понимание того, почему это ценное потребует от вас некоторое время шарить, пока вы перестанете видеть синтаксис и не увидите дерево.
Ответ 9
Поскольку вы используете Ubuntu, я бы просто установил некоторые из пакетов и попросил их попробовать.
Общий Lisp: apt-get install clisp
Схема: apt-get install drscheme
Это не единственные упакованные реализации, но, возможно, легче начать работу. Вы сможете играть в REPL, а также запускать собственные скрипты через интерпретатор.
Ответ 10
BioBike предоставляет полный общий оценщик Lisp через Интернет (с дополнительными функциями, такими как система представления знаний, биокомпьютинг и альтернативный визуальный langauge).
Ответ 11
Если вы просто хотите играть с LISP, оперативно, быстро, GNU Emacs имеет встроенный интерпретатор LISP и прослушивает в буфере *scratch*
. Введите S-выражение, положение сразу после него, а затем нажмите Ctrl-J, чтобы оценить его. Или <ESC>:
поместит приглашение Eval: в минибуфер, примет S-выражение и проверит его.
Вы можете определять функции, используя defun, и тестировать вещи таким образом. У вас есть доступ ко всем встроенным функциям GNU Emacs и все, что вы загрузили. Если вы хотите, чтобы все было в порядке, вы можете поместить их в файл .emacs.
Ответ 12
https://github.com/fogus/himera
было очень легко настроить на https://www.nitrous.io виртуальную коробку. Делает приятный веб-интерфейс.
Загрузка и запуск clojure -1.6.0.jar в моем окне (XP) было так же просто, как использование этого script для запуска REPL:
java -cp clojure-1.6.0.jar clojure.main