Lisp In A Box - Почему он запускает сервер? - PullRequest
9 голосов
/ 21 ноября 2008

Я решил вернуться к LISP (не использовал его с моих классов ИИ), чтобы в целом освоиться с функциональным программированием, поэтому я скачал Lisp In A Box (который мы фактически использовали в предыдущем классе) который поставляется с CLISP и Emacs.

Когда я запускаю его, он говорит:

Подключен через порт 1617. Возьми этот ответ, брат, и пусть он хорошо тебе послужит.

Что за? Поэтому я посмотрел на веб-страницу Lisp In A Box более внимательно и нашел это:

SLIME - это интегрированная среда разработки для Emacs, которая взаимодействует с реализацией Common Lisp через сетевой сокет. Много информации о SLIME можно найти на узле SLIME в CLiki. Руководство по SLIME доступно в формате PDF онлайн.

Я немного понимаю, что такое SLIME (своего рода расширение для emacs, верно?) Но почему в мире текстовый редактор запускает собственный сервер и подключается к нему?

Ответы [ 4 ]

11 голосов
/ 21 ноября 2008

Цель в том, чтобы Лисп работал параллельно.

Slime подключается к сеансу, и тогда вы можете иметь ту же среду, определения и т. Д. Из разных окон (или даже машин). Это означает, что вы можете, например, запустить приложение и отладить его на лету.

Для получения дополнительной информации, посмотрите этот блог .

10 голосов
/ 22 ноября 2008

Розетки более гибкие, чем трубы. С одной стороны, SLIME позволяет вам подключаться к серверам Swank в сети, что очень полезно для выполнения оперативных исправлений на удаленных машинах с долго работающими процессами (такими как веб-серверы). Учитывая это, зачем вам добавлять еще один уровень сложности, абстрагируя коммуникацию таким образом, чтобы поддерживать как каналы, так и сокеты? В любом случае, каналы не так просто программировать, как сокеты.

2 голосов
/ 23 ноября 2008

Итак, Slime запускает процесс Lisp, чтобы предоставить вам интегрированную среду разработки. Так что вы можете тестировать и отлаживать свой код на лету, а также иметь возможность проверять объекты. Я думаю, что архитектура с сокетами была выбрана для лучшей переносимости между различными списками (между прочим, Slime также поддерживает Clojure и MIT Scheme ) и ОС (Slime работает и в Windows). Также это позволяет кросс-платформенную разработку - вы можете протестировать свое программное обеспечение на целевой архитектуре из Emacs.

Так что я думаю, что это отличное решение, вы просто не должны ставить swank (Slime back-end) на рабочие серверы.

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

Вы получаете REPL (чтение-оценка-печать-цикл), работающий параллельно, так что вы можете компилировать и тестировать фрагменты кода на лету из вашего редактора. «Практический Common Lisp» (свободно доступный в Интернете) имеет хорошее объяснение этому, и это очень хорошая книга для изучения Lisp.

...