Как лучше всего изучить LISP?

Я занимаюсь программированием на Python, PHP, Java и C уже пару лет, и я только что закончил читать «Хакеры и художники», так что я хотел бы попробовать LISP!

Я понимаю, что это совершенно не то, что я знаю, и что это будет нелегко. Также я думаю (поправьте меня, если я ошибаюсь) вокруг LISP гораздо меньше сообщества и разработки. Итак, мой вопрос: как лучше всего изучить LISP?

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

«Последней» идеей было бы использовать LISP для веб-разработки, и я знаю, что это не так уж часто, поэтому ... Я знаю, что хорошо спланировать свое обучение, прежде чем выбирать первую книгу или учебник и тратить много времени на то, что может не будь лучшим способом!

Всем спасибо за ответы!

edit: Я прочитал практический Common Lisp и был: ... длинным, сложным, интересным и определенно заставил меня освоить Lisp, после этого я прочитал маленького интригана, и это было коротко, весело и очень-очень хорошо для моего программирования в целом. Итак, я бы порекомендовал сначала прочитать маленького интригана, затем (это пара часов и оно того стоит), если вы решите, что шепелявость (или схема, или какой-либо другой диалект) не то, что вы искали, вам все равно будет очень весело. новый взгляд на рекурсию!


person DFectuoso    schedule 29.12.2008    source источник
comment
Common Lisp: интерактивный подход. Старая (1992) книга Стюарта Шапиро. Раньше было только мертвое дерево, но в последние годы доступно в электронном виде.   -  person Kaz    schedule 18.06.2014
comment
Common LISPCraft Роберта Виленски - интересная, хотя и старая книга. У меня есть бумажная копия, датированная 1986 годом.   -  person Kaz    schedule 18.06.2014


Ответы (22)


Попробуйте прочитать Практический Common Lisp Питера Зайбела.

person Avi    schedule 29.12.2008
comment
Кажется, я видел эту книгу в своем кампусе ... так что забери ее прямо сейчас! - person DFectuoso; 29.12.2008
comment
Не забывайте про REPL! Я не использовал то, что узнал о LISP, но это сделало меня гораздо лучшим программистом на всех других языках. - person Robert K; 30.12.2008
comment
очень рекомендую, это была книга, которую мы использовали на моем уроке искусственного интеллекта, чтобы научить нас LISP для наших проектов. - person helloandre; 30.12.2008
comment
DFectuoso - это не просто ссылка о книге, это сама книга. Начать читать книгу онлайн - person Aaron; 30.12.2008
comment
Да, я знаю, но мне не нравится читать на мониторе ... в любом случае я выбрал это как ответ, потому что я начал читать книгу, и это хорошо (я больше половины, а затем плохо прочитал маленького интригана, отредактирую это, когда я заканчиваю оба = 0) - person DFectuoso; 13.01.2009

Мне больше всего нравится Структура и интерпретация компьютерных программ Abelson & Sussman. Он использует Scheme, красивый и чистый диалект Lisp.

Если вам нравится более практичный подход, возможно, вам стоит выбрать какой-нибудь Lisp-фреймворк для веб-дизайна (я понятия не имею, существует ли такой зверь) и сразу же приступить к нему.

person starblue    schedule 29.12.2008
comment
У Пола Грэма есть шепелявый веб-фреймворк под названием arc. - person graywh; 01.01.2009
comment
Я считаю, что Arc - это собственный диалект Лиспа, а не просто фреймворк. paulgraham.com/arc.html - person michiakig; 27.08.2010

Возможно, вы захотите начать с Маленького интригана в качестве Разогрев. Это не практическая книга о написании производственных программ на Лиспе, но это отличная книга для изучения того, как думать на Лиспе.

person John D. Cook    schedule 29.12.2008
comment
Для начала это хорошее и быстрое чтение! TY - person DFectuoso; 29.12.2008
comment
Я бы не согласился. Да, погружение в него может быть самым быстрым способом выучить Лисп, но оно также может отпугнуть людей. PCL имеет то преимущество, что опытные программы могут начинать использовать Lisp с первого дня, а не просто месмориться. - person Aaron; 02.01.2009

MIT сделал доступным полный курс LISP в форматах DIVX и MPEG. Я очень рекомендую это.

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

person user49978    schedule 29.12.2008
comment
Лекции основаны на их учебнике «Структура и интерпретация компьютерных программ». - person graywh; 01.01.2009
comment
Я обнаружил, что видео DivX имеют такое же качество, что и видео MPEG, хотя они намного меньше. Сэкономьте пропускную способность и дисковое пространство. - person Drew Noakes; 30.04.2009
comment
Чтобы еще больше сэкономить дисковое пространство, перейдите по ссылке и выполните поиск структуры и интерпретации (в кавычках). - person Bill Evans at Mariposa; 29.03.2011
comment
Я просматриваю видео SICP. Какой диалект они используют? Они не упоминают диалект, они просто называют его LISP ... - person priestc; 27.08.2012
comment
@priestc Я знаю, что этот вопрос задавали 4 года назад, но просто чтобы прояснить ситуацию. Они используют схему. - person dptd; 05.05.2016
comment
Примечание: - Видео относятся к первому изданию книги. У книги есть второе издание, и между ними есть существенные различия. - person Abhirath Mahipal; 16.09.2016

Сейчас существует книга под названием «Страна LISP», которая учит программированию на LISP посредством письма. Текстовые игры в стиле 80-х. Я читаю его сейчас, он очень хорошо написан и не воспринимает себя слишком серьезно, что мне нравится.

person fbl    schedule 27.12.2010

Здесь есть несколько вариантов. Во-первых, Scheme и Common Lisp довольно сильно отличаются друг от друга (например, в области видимости); вам следует выбрать один для начала и придерживаться его некоторое время. Я фанат Common Lisp, но это может быть один из тех религиозных вопросов vi-vs-EMACS.

Для Scheme выберите язык программирования схемы Кента Дибвига, а затем SICP.

Для Common Lisp, а также для Practical Common Lisp я бы порекомендовал Successful Lisp. Успешный Лисп также доступен в Интернете для бесплатно.

После этого посмотрите Lisp in Small Pieces от Queinnec, и Лисп в ИИ Норвига.

У Марти Холла есть хороший список в Johns Hopkins.

Обновлено: я не имею в виду, что придерживаться его вечно, просто попытка изучить оба сразу может сбить с толку.

person Charlie Martin    schedule 29.12.2008


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

person JesperE    schedule 29.12.2008
comment
Я уже хороший участник Project Euler, так что да, время, которое я провожу там, будет посвящено практике LISP (как только я научусь делать пару вещей) - person DFectuoso; 29.12.2008

Ansi Common Lisp Пола Грэма - хорошая книга.

Я думаю, что он может быть распродан, поэтому лучше всего получить его через Amazon. Я получил книгу для класса «Обработка естественного языка», который я брал на втором курсе колледжа. Нам приходилось писать программные проекты на LISP, поэтому мне нужно было быстро изучить Lisp.

Книга мне очень помогла.

person Scott Wisniewski    schedule 29.12.2008

Однажды у меня возникла проблема. Я не знала шепелявости. Поэтому я решил загрузить LISP в коробке.

Затем я обнаружил, что установил Emacs без какой-либо помощи или документации.

Тогда у меня было две проблемы.

person adolfojp    schedule 30.12.2008
comment
Проблема здесь в том, что кто-то не рассказал вам об учебнике; нажмите Control-H, отпустите их и нажмите T. Это приведет вас к руководству, которое даст вам все, что вам нужно для начала работы. Сожалеем о вашем неудачном опыте. - person JasonFruit; 31.12.2008
comment
+1 за ссылку на старую шутку о регулярных выражениях, но -1 за то, что она бесполезна. :-П - person Michael H.; 06.10.2009

Для серьезных учеников я бы порекомендовал PAIP от Norvig. Это отличный ресурс для изучения Lisp и AI.

person amit    schedule 04.02.2009
comment
Во-вторых, это отличная книга, хорошо написанная и, по-моему, более вдохновляющая, чем Practical Common Lisp. - person Johan Kotlinski; 13.07.2009

Беркли предлагает CS61a в формате подкаста. Это введение в класс CS, основанный на SICP. Это более современная версия, чем доступные в MIT видеоролики 1982 года.

person Steve Rowe    schedule 04.02.2009

Я прорабатываю Lisp прямо сейчас и наткнулся на «книгу» по изучению Lisp. Это предложил Райнер Йосвиг.

Книга называется Common Lisp: Gentle Introduction to Symbolic Computing. и его можно скачать в формате PDF. Автор начинает с UML-подобного подхода к Lisp в первой главе и постепенно вводит все больше и больше синтаксиса Lisp.

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

еще одна вещь, вам понадобится среда для работы. Я нашел Lisp in a Box работать хорошо. Он работает в Windows и Linux и использует eMacs.

person BlueBadger    schedule 10.03.2009

LISP привлек меня своим диалектом JVM - Clojure. Clojure - отличный LISP, поскольку

  • имеет "упрощенный синтаксис", то есть меньше парафеников, есть грамотно оформленный набор коллекций
  • он основан на JVM, поэтому под ним находится стабильная, производительная среда выполнения, кроме того, вся экосистема Java (библиотеки, например, драйверы базы данных, инструменты сборки, IDE) находится в пределах нашей досягаемости
  • Noir - хороший веб-фреймворк, приложения можно развертывать на веб-серверах Java и серверах приложений.

Другими словами, Clojure можно использовать в продакшене прямо здесь, прямо сейчас.

Что касается ресурсов, то есть как минимум 4 книги и обширные онлайн-ресурсы:

person Piotr Kochański    schedule 08.11.2012

Мне понравилось читать Практический общий LISP и Общий LISP ANSI.

На LISP выглядит интересно, но 190 долларов кажется дороговато для книги.

person Ferruccio    schedule 29.12.2008
comment
On Lisp доступен бесплатно с сайта автора. - person user49117; 29.12.2008
comment
Вот ссылка на бесплатную загрузку On Lisp. Ссылка - person Andrew-Dufresne; 21.08.2010

Для веб-разработки вам может потребоваться взглянуть на hunchentoot, веб-сервер, написанный на общем лиспе.

person Kim Stebel    schedule 29.12.2008
comment
Вы знаете, очень грустно видеть, что все веб-серверы и фреймворки вокруг lisp ориентированы на веб ... имеют НУЛЕВОЙ дизайн (css или даже встроенный стиль - person DFectuoso; 30.12.2008

Я обнаружил, что выполнение упражнений из «Маленького программиста» действительно помогло мне отточить рекурсивную, сопоставимую с образцом сторону моего мышления и значительно упростило работу в XSLT.

person Andy Dent    schedule 13.01.2009

Я рекомендую сначала "Мягкое введение в символьные вычисления" или "Практический Common Lisp", исходя из вашего опыта программирования. Для практики я использую Allegro CL 8.2 Free Express Edition в Windows. Это превращает тренировки в большое удовольствие.

person hajovonta    schedule 05.08.2011

Вроде как сложный вопрос ... Я думаю, все зависит от вашего стиля обучения.

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

LISP определенно является уникальным языком и требует нового мышления, если вы привыкли к традиционному программированию на C, Java, PHP.

Удачи тебе !

person Community    schedule 29.12.2008

Я обнаружил, что чтение книги SICP действительно помогла мне в обучении. Я использовал Steel Bank Common Lisp (SBCL) и добился хороших результатов.

Удачи

person Community    schedule 29.12.2008
comment
Спасибо. Я собираюсь выбрать несколько книг сегодня и начать очень рано завтра! - person DFectuoso; 29.12.2008
comment
Однако обратите внимание, что SBCL предназначен для Common LISP, а книга посвящена Scheme. Я еще не прочитал его полностью, но думаю, что он все еще может быть большим подспорьем для изучения Common LISP. Вам просто нужно найти эквиваленты в Common LISP. - person Zelphir Kaltstahl; 11.08.2016

Я не знаю, есть ли в Лиспе что-то особенное, что отличает его от изучения любого другого языка. Вам просто нужно начать использовать его и опробовать его возможности.

Один из вариантов - попробовать простой проект.

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

person Jon Ericson    schedule 29.12.2008

Прочтите эти книги по порядку: «Мягкое введение в символьные вычисления», «ANSI Common Lisp» Пола Грэма, а затем переходите к «Практическому Common Lisp». Или пропустите ACL и используйте его в качестве справочника при работе с PCL.

person Abhijith    schedule 21.03.2009