Каков наилучший LISP / схема для сценариев Unix? - PullRequest
18 голосов
/ 16 ноября 2010

Название в значительной степени говорит само за себя.Я использую clojure для своих крупных проектов, но это не очень хороший язык сценариев, потому что jvm медленно запускается и плохо взаимодействует с некоторыми неуклюжими вещами.Поэтому я ищу шутку, которая будет хорошо работать в качестве языка сценариев, например, с хорошим интерфейсом для управления процессами Unix, с легкостью использовать такие вещи, как async io и т. Д.

Ответы [ 7 ]

14 голосов
/ 16 ноября 2010

Scsh (расшифровывается как «оболочка схемы») можно получить по адресу http://www.scsh.net. Это «вариант схемы 48 (совместимая с R5RS новая технологическая система Scheme) ... предназначенная для написания реальных автономных приложений». Unix-программы и сценарии оболочки. "

Хорошее введение в системное администрирование можно найти по адресу http://www.theillien.com/Sys_Admin_v12/html/v11/i01/a2.htm.

9 голосов
/ 16 ноября 2010

Широкий спектр распространенных инструментов Unix имеет привязки для Guile . Если ваша цель - автоматизировать любой из этих инструментов, это может быть хорошим местом для поиска.

8 голосов
/ 16 ноября 2010

Ракетка - это действительно хорошая реализация Схемы. Это довольно мощный. Одним из его представлений является разработка веб-сервера с нуля.

7 голосов
/ 16 ноября 2010
4 голосов
/ 16 ноября 2010

CLISP , реализация Common Lisp, полезна для сценариев Unix.

CLISP имеет много расширений, которые делают его полезным для сценариев: поддержка Юникода, регулярные выражения, различные параметры командной строки, потоки сокетов, конвейеры, ...

Кроме того, CLISP имеет относительно небольшую площадь, написан на C для переносимости и запускается быстро - для Common Lisp.

1 голос
/ 22 сентября 2016

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

После некоторых поисков я наткнулся на пакет shell-pipe для ракетки.Из документации:

Эта библиотека упрощает конвейеры внешних программ и функции ракет в стиле Unix.Вы можете написать вещи просто как (run-pipeline '(cat /etc/passwd) '(grep root) '(cut -d : -f 1)), который напечатает "root\n" на стандартный вывод (в системах Unix) и вернет 0.Чтобы получить вывод в виде строки, используйте run-pipeline/out таким же образом.Вы также можете поместить функции ракетки в конвейер.Если у вас есть ракетная реализация grep с именем my-grep, вы можете сделать (run-pipeline '(cat /etc/passwd) `(,my-grep root) '(cut -d : -f 1)), чтобы получить те же результаты.Таким образом, вы можете писать все виды функций фильтра в Racket, а не использовать команды оболочки.

1 голос
/ 22 марта 2011

Eshell с Elisp для интерактивного использования:

"Eshell способен вызывать практически любую функцию elisp, загруженную в Emacs. Такая гибкость не имеет себе равных; не существует оболочек, способных приблизиться к возможностям Eshell. На самом деле эта функциональность активно используется (и приветствуется! ) от Eshell. Если вы хотите открыть файл foobar.txt в Emacs, просто вызовите find-файл foobar.txt, и Eshell отобразит это на вызов elisp (find-file "foobar.txt") и откроет файл для вас. . "

от http://www.masteringemacs.org/articles/2010/12/13/complete-guide-mastering-eshell/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...