Библиотека knigago >> Литература по изданиям >> Самиздат, сетевая литература >> Nikodemus' Common Lisp FAQ


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1261, книга: Найденыш 9
автор: Валерий Михайлович Гуминский

"Найденыш 9" - захватывающий роман в жанре городского фэнтези от талантливого автора Валерия Гуминского. Эта книга порадует читателей увлекательным сюжетом, яркими персонажами и мистической атмосферой. История вращается вокруг Найденыша 9 - особенного ребенка, рожденного в атмосфере тайны и интриг. Его судьба тесно переплетена с древним артефактом, который может изменить ход мировой истории. По мере того, как Найденыш 9 растет, он начинает осознавать свои необычные способности и...

Nikodemus Siivola - Nikodemus' Common Lisp FAQ

Nikodemus' Common Lisp FAQ
Книга - Nikodemus
Название:
Nikodemus' Common Lisp FAQ
Nikodemus Siivola

Жанр:

Самиздат, сетевая литература, Литература ХXI века (эпоха Глобализации экономики), Любительские переводы, Lisp, Scheme

Изадано в серии:

неизвестно

Издательство:

Интернет-издательство «Stribog»

Год издания:

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Nikodemus' Common Lisp FAQ"

Последнее обновление: 2012-04-13.
Это очень неофициальное ЧаВО по языку Common Lisp, отражающее субъективное мнение Nikodemus Siivola. Этот текст частично основан на других ЧаВО, встречавшихся на просторах интернета и comp.lang.lisp.
Если вы думаете, что я воспользовался вашим текстом, буду рад признаться в этом, поэтому пишите на nikodemus@random-state.net.
Текущая версия этого ЧаВО доступна по следующим адресам:
http://random-state.net/files/nikodemus-cl-faq.txt
http://random-state.net/files/nikodemus-cl-faq.html
ЧаВО также периодически публикуется в comp.lang.lisp.

Читаем онлайн "Nikodemus' Common Lisp FAQ". [Страница - 2]

читать справочник. Просто знайте где он находится, здесь содержатся официальные ответы на все возможные вопросы про CL. Это идеальное место для выяснения, что делает тот или иной оператор. Кроме того, в него стоит заглядывать, чтобы узнать, реализован ли нужный вам функционал в языке.

Не пренебрегайте также документацией, поставляемой вместе с вашей реализацией. В случае SBCL, руководство находится по адресу:

http://www.sbcl.org/manual

Какую мне взять реализацию?

Зависит от того, что вам нужно, хотя если вы только начали, то это не важно. Впрочем, если вы ждете помощи от какой-то группы людей, берите реализацию, которой эта группа пользуется.

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

Я очень неравнодушен к SBCL:

http://www.sbcl.org/

SBCL хорош тем, что он идет с открытым исходным кодом, запускается на множестве платформ (в том числе Windows), включает в себя компилятор, очень серьезно относится к совместимости со стандартом ANSI и вообще несет радость и мир во всем мире… и тут я должен упомянуть, что я один из разработчиков SBCL и моя компания Steel Bank Studio Ltd предоставляет коммерческую поддержку для него.

Если SBCL по каким-то причинам вам не подходит, могу предложить пройтись по следующим спискам:


Открытые:

• Clozure CL

• CMUCL

• Clisp

• ABCL

• ECL


Коммерческие:

• Lispworks

• Allegro CL

• Scieneer

Где библиотеки? Есть аналог CPAN или RubyGems?

На RubyGems очень похож «QuickLisp»:

http://www.quicklisp.org/

Он предоставляет массу библиотек и управляет зависимостями между ними. Это очень-очень нужный инструмент.

Наиболее близкими к CPAN являются «Cliki» и «common-lisp.net»:

http://www.cliki.net/ http://www.common-lisp.net/

… но лучше ничего и не надо, правда.

Каким IDE пользоваться?

Если вы работаете с SBCL, то пользуйтесь Emacs и Slime:

http://www.common-lisp.net/project/slime/

Даже если вы раньше не пользовались Emacs, совершите усилие над собой и используйте Slime — кривая обучения не очень крутая и все команды доступны через меню.

Можно настроить Slime с помощью Quicklisp, смотри ниже раздел «Как настроить окружение?». Начать изучение можно с M-x slime-cheat-sheet, впрочем, это лишь малая часть возможностей Slime.

При использовании другой реализации пользуйтесь тем IDE, что рекомендует разработчик (хотя Slime работает практически со всеми реализациями).

Для практической работы с Lisp редактор как минимум должен:

• правильно расставлять отсупы в коде Lisp;

• понимать парные скобки;

• уметь выполнять команды Edit Definition, Compile Defun, Eval Expression, Describe Symbol, Disassemble Function, Trace Function, Inspect expression и другие команды для взаимодействия с вашим Lisp'ом;

• взаимодействовать с отладчиком;

• взаимодействовать с инспектором.

Slime умеет все перечисленное и ещё много чего.

Если вам нравится Vi(m), обратите внимание на Slimv, который связывает Vim с частью Slime, написанной на Common Lisp:

http://www.vim.org/scripts/script.php?script_id=2531

https://bitbucket.org/kovisoft/slimv/

http://kovisoft.bitbucket.org/tutorial.html

… но я не могу ручаться за это, поскольку не пользуюсь Vim/Slimv.

Как настроить окружение?

Хорошее руководство (на момент написания) по получению SBCL, Slime и настройке Quicklisp расположено здесь:

http://mohiji.nfshost.com/2011/01/modern-common-lisp-on-linux/

http://mohiji.nfshost.com/2011/01/modern-common-lisp-on-osx/

Указания по настройке Clisp на Windows. Впрочем, нельзя объять необъятное:

http://mohiji.nfshost.com/2011/01/modern-common-lisp-on-windows/

А GUI есть?

И да, и нет. Одного GUI, которым пользовались бы все, нет.

Коммерческие Lisp'ы в большинстве своём поставляются с библиотеками GUI, и, похоже, что сторонникам этих реализаций нравятся поставляемые библиотеки. Однако, код для таких библиотек не переносится между Lisp'ами. Если вы пользуетесь коммерческой реализацией и переносимость кода вам не интересна, то выбирайте инструменты, предлагаемые разработчиком. В зависимости от того, как сделана библиотека, код может переносится на разные операционные системы, возможно это именно то, что вам нужно.

В лагере отрытого кода тоже есть несколько решений.


CommonQt — это привязка Common Lisp к библиотеке smoke для Qt:

http://common-lisp.net/project/commonqt/


LTK построена поверх Tk:

http://www.peter-herth.de/ltk/


CL-GTK2 и CLG — привязки к GTK+, но я не могу ничего сказать про текущее состояние этих разработок.

Стоит также посмотреть на GTK --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.