LINUX.ORG.RU

lisp-lor-faq


1

6

Я решил, что кучи флейма по лиспу не должны пропасть втуне, а также принимая во внимание наличие на L.O.R. любителей лиспа, взял на себя смелость приступить к созданию FAQ по языку Lisp.

FAQ не завершён, фактически самое его начало в сыром ещё виде размещено здесь: http://www.linux.org.ru/wiki/en/lisp-lor-faq

Кому интересно и score > 100 - могут сразу присоединиться к его составлению, кому не хватает score могут оставить замечания здесь.

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

А на русском? ;-)

Кроме того, в замыслах есть часть с основными моментами, вызывающими вопросы у новичков. Типа что делать, если нужен массив, как подключить внешнюю библиотеку, как скомпилировать результат, чтоб одним файлом/пакетом распространять прогу и т.п.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от Teak

> а то у тебя там маленький совсем.

Я постарался дать список наиболее часто используемых, что-ли. Надо как-то отметить этот момент и внести ссылку на Грэма.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous_incognito

> А на русском? ;-)

а смысл? без умения хотя бы читать по-английски вообще ничерта толкового про лисп не узнаешь. да и не только про лисп...

> Кроме того, в замыслах есть часть с основными моментами, вызывающими вопросы у новичков. Типа что делать, если нужен массив, как подключить внешнюю библиотеку, как скомпилировать результат, чтоб одним файлом/пакетом распространять прогу и т.п.

http://www.cliki.net/Education

http://en.wikipedia.org/wiki/Lisp_%28programming_language%29#External_links

; raiely

anonymous
()
Ответ на: комментарий от anonymous

Хочешь сказать - создавать такой FAQ бессмысленно?

Возможно. Но тогда надо хотя бы ссылки сделать, если вообще тему Lisp поднимать.

anonymous_incognito ★★★★★
() автор топика

Про начало с On Lisp я далеко не согласен. Лично я бы посоветовал PCL, или даже прочитать первый том Мира Лиспа, а только потом On Lisp. И плюс еще к литературе --- многие хвалят Paradigms of Artificial Intelligence Programming, но его нет в электронном виде.

stassats ★★★★
()

а зачем в названии статьи символы "-lor"? разве не очевидно, что статья и так на лоре?

AnDoR ★★★★★
()

Наверное в "Какие существуют среды разработки для Lisp?" следует уточнить, что Emacs + Slime и Eclipse + cusp это для Common Lisp, а для Scheme есть DrScheme или Emacs + Quack.

anonymous
()
Ответ на: комментарий от stassats

> Редактировать-то понятно, но некоторые моменты лучше сначала обсуждать.

Спасибо за исправления. А о каких моментах идёт речь?

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Спасибо, учту. Наверное, список литературы надо будет разнести на несколько вопросов, чтобы тематически правильно твои ссылки занести. Или отдельный вопрос "другие ресурсы" завести надо будет.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от stassats

> Про On Lisp в качестве начала.

Подумал и исправил. Сам то я вовсе не по On Lisp начал изучать Lisp ;-) а по каким-то статьям в интернете, а когда-то очень давно немного изучал AutoLisp.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous_incognito

<i>Сам то я вовсе не по On Lisp начал изучать Lisp ;-) а по каким-то статьям в интернете, а когда-то очень давно немного изучал AutoLisp.</i>

лучшие "общепризнанные" книги для начинающих по lisp: pcl & lisp in small pices(не в свободном доступе, но кто ищет, тот всегда найдёт).

; detder

anonymous
()

> Ориентированные на Scheme

>   1. Emacs + расширение Quack 

На самом деле существует еще одно неплохое расширение, ориентированое
на scheme48, называется slime48, позволяет частично совместить slime и
scheme48.

http://mumble.net/~campbell/slime48.html

Также необходимо указать расширение paredit.el (есть в репозитариях 
многих дистрибутивов), сильно облегчающее редактирование lisp-кода.

hyc
()
Ответ на: комментарий от alex_custov

В смысле, не оставшийся в 60-х. Хотя, даже уровень 60-х неплохо выглядит и сейчас.

anonymous_incognito ★★★★★
() автор топика

Идею поддерживаю.
Замечание по оформлению. IMHO надо заменить логотип слева на eval-apply в стиле инь-янь.

seiken ★★★★★
()
Ответ на: комментарий от anonymous

>а смысл? без умения хотя бы читать по-английски вообще ничерта толкового про лисп не узнаешь. да и не только про лисп...

Как минимум потому что напрягает постоянно читать доки на инглише, живя в русскоязычной среде. Это дополнительные мыслетраты на переключение мозга рус<->инг, а /dev/brain, как правило, языковую многозадачность поддерживает отвратительно. Это никак не связано со знанием языка как такового.

anonymous
()
Ответ на: комментарий от seiken

> IMHO надо заменить логотип слева на eval-apply в стиле инь-янь.

Наверно не получится. Это же общая wiki и FAQ по лиспу формально часть общелоровского FAQ по линуксу и сайту. Разве что в самое начало lisp-lor-faq вставить.

anonymous_incognito ★★★★★
() автор топика

полезное начинание.

насчёт русского языка я не согласен с анонимом. когда уже ориентируешься, то читать man-ы по-англ. не напрягает, но учиться с нуля намного удобнее на русском языке.

ps: очень рад переводу книги, несколько раз начинал её читать в оригинале, но становилось лень, в итоге скатывался к каким-то небольшим туториалам, по которым естественно нормально не научишься.

anonymous
()

> Кому интересно и score > 200 - могут сразу присоединиться к его составлению

Пля, просто сейчас катастрофически не хватает времени. В свое время пробовал делать выписки и конспекты по результатам дискуссии на ЛОР:

http://wiki.aroks.com.ua/ZametkiOJazykaxProgrammirovanija/ZametkiOLisp?v=2u1

Если найдете что полезное, забирайте. Когда/Если разребусь с текучкой (выйду на пенсию), попробую подключиться. Хотя у меня еще долгов перед прогопедией...

eugine_kosenko ★★★
()
Ответ на: комментарий от eugine_kosenko

Спасибо!

> Если найдете что полезное, забирайте.

Заберу :)

anonymous_incognito ★★★★★
() автор топика

У меня лично как у простого эникейщика два вопроса:

Как делать гуйню на Лиспе?

Какая парадигма у функционального программирования?

anonymous
()
Ответ на: комментарий от anonymous

>> Как делать гуйню на Лиспе?

Так же как и везде - через биндинги к библиотекам. Ну и плюс каждая реализация может предложить что-то свое.

>> Какая парадигма у функционального программирования?

Забавно... Сам то понял что спросил?

cathode
()
Ответ на: комментарий от anonymous

> Как делать гуйню на Лиспе?

например этим http://common-lisp.net/project/mcclim/

или этим http://common-lisp.net/project/lambda-gtk

и для 3D http://common-lisp.net/project/cl-opengl/

в качестве примера web browser http://common-lisp.net/project/closure/

.

А вообще стоит при разработке раздела практическое применение добавить что-нибудь отсюда

http://common-lisp.net/projects.shtml

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

ilnurathome
()
Ответ на: комментарий от ilnurathome

Доброго! Я вот уже несколько лет назад задумал и начал создавать "разговорник", для перевода простейших шаблонов кодирования с С на лисп. Это выглядит как табличка. СЛева - кусочек кода на С, справа - аналог на лиспе. Ну и комментарии. Например, слева идёт (++a)+(a++) а справа - соответствующий ему (+ (incf a) (prog1 a (incf a))) Конечно, такая шпаргалка не может быть точной, но она будет очень полезна для общего ориентирования тех, кто уже знает другие языки программирования. Во всяком случае, до систематического проведения этой работы руки так и не дошли... Выложил сюда: http://slil.ru/25754710 Но это - явно не доделанная работа, а всего лишь "рыба". Может быть, имеет смысл включить в FAQ такой раздел?

И ещё одна тема - есть такое соревнование по скорости языков: http://shootout.alioth.debian.org/ Оно даёт достаточно объективное сравнение языков по быстродействию и хорошо показывает место Common Lisp среди современных языков. Тоже можно добавить в качестве ответа на вопрос "правда ли, что лисп медленный"?

Денис Будяк

anonymous
()
Ответ на: комментарий от anonymous

Не думаю, что переводить с одного языка на другой хорошая идея, учитывая, что языки разные по идеологии и стилям программирования.

stassats ★★★★
()
Ответ на: комментарий от stassats

Что значит "разные по идеологии"? У С++ и лиспа вот сколько общего: переменные, функции, присваивание, арифметика, массивы, операции со строками, управляющие конструкции, пространства имён, макросы, классы и экземпляры, методы. Разве это мало? В виде "разговорника" эту информацию можно ужать в пару страниц, а если излагать с нуля - нужно целую книгу написать. Конечно, всё равно разговорник непригоден для усвоения новых понятий, которых нет в С++, но зато он избавит от занудного чтения изрядного куска документации.

anonymous
()
Ответ на: комментарий от anonymous

Лисп (Common Lisp) также поддерживает функциональную парадигму, а объектная система в нем отличная от плюсовой. Макросистема тоже имеет различия.

И потом, если переводить с си/паскаля/плюсов на лисп, тогда зачем вообще лисп? Что в итоге получится --- плюсы с синтаксисом лиспа?

stassats ★★★★
()
Ответ на: комментарий от stassats

> Лисп (Common Lisp) также поддерживает функциональную парадигму, а объектная система в нем отличная от плюсовой. Макросистема тоже имеет различия.

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

> И потом, если переводить с си/паскаля/плюсов на лисп, тогда зачем вообще лисп?

По-моему, это офтопик. Можно, я не буду отвечать?

den73 ★★★★★
()
Ответ на: комментарий от anonymous

> Я вот уже несколько лет назад задумал и начал создавать "разговорник", для перевода простейших шаблонов кодирования с С на лисп. Это выглядит как табличка. СЛева - кусочек кода на С, справа - аналог на лиспе.

ИМХО, буквальный перевод Си на Лисп выглядит просто отвратительно.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Отвратительно или нет - это вопрос вкуса. Тем не менее, для новичка составляет проблему то, что вместо {...} нужно писать (progn ...), а вместо = - setf или let. В этом отношении лисп сильно отличается от С и иже с ним. Собственно, именно для этой цели и нужна шпаргалка. Даже не то, что разговорник, а просто даже словарь!

В общем, такой проект уже есть, я нашёл его:

http://pleac.sourceforge.net/ Для сравнения одних и тех же примеров на разных языкам там есть скрипт, но я не сразу понял, что нужно ввести номер секции и номер примера в секции.

А нашёл через defun.ru

Т.е., предлагается в FAQ написать вопрос такого рода: "У меня есть пример программы на моём любимом языке - как написать его на лиспе" и дать ссылку.

den73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.