Какой лучший способ выучить LISP? [закрыто]

167

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

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

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

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

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

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

DFectuoso
источник
Common Lisp: интерактивный подход . Старая (1992) книга Стюарта Шапиро. Раньше было только мертвое дерево, но в последние годы доступно в электронном виде .
Каз
Common LISPCraft от Robert Wilensky - интересная, хотя и старая книга. У меня есть печатная копия, датированная 1986 годом.
Kaz

Ответы:

114

Попробуйте прочитать « Практический общий Лисп » Питера Сейбела.

Avi
источник
2
Я думаю, что я видел эту книгу в моем кампусе ... так что не могу забрать ее прямо сейчас!
DFectuoso
2
Не забывайте про REPL! Я не использовал то, что узнал о LISP, но это сделало меня намного лучшим программистом на всех других языках.
Роберт К
1
очень рекомендую, это была книга, которую мы использовали для моего класса ИИ, чтобы научить нас LISP для наших проектов.
Привет
6
DFectuoso - это не просто ссылка о книге, то это книга. Начните читать книгу онлайн
Аарон
2
Да, я знаю, но мне не нравится читать на мониторе ... во всяком случае, я выбрал это как ответ, потому что я начал читать книгу, и это хорошо (я перечитал половину, а затем плохо прочитал маленького интригана, отредактирую это, когда я заканчиваю оба = 0)
DFectuoso
76

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

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

starblue
источник
1
У Пола Грэма есть веб-фреймворк Lisp, называемый arc.
серый
15
Я считаю, что Arc - это собственный диалект Lisp, а не просто фреймворк. paulgraham.com/arc.html
michiakig
55

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

Джон Д. Кук
источник
Это похоже на хорошее и быстрое чтение, чтобы начать! TY
DFectuoso
5
Я бы не согласился. Да, погружение в него может быть самым быстрым способом изучения Лиспа, но это также наиболее вероятно, чтобы отвлечь людей. Преимущество PCL в том, что опытные программы могут начать использовать Lisp с первого дня, вместо того, чтобы просто быть расстроенными
Аарон
43

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

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

user49978
источник
3
Лекции основаны на их учебнике «Структура и интерпретация компьютерных программ».
серый
7
Я обнаружил, что видео DivX имеют качество, сходное с видео MPEG, хотя они намного меньше. Сэкономьте себе пропускную способность и дисковое пространство.
Дрю Ноакс
2
Для еще большей экономии дискового пространства перейдите по ссылке и найдите «структуру и интерпретацию» (используя кавычки).
Билл Эванс в Mariposa
Я иду через видео SICP. Какой диалект они используют? Они не упоминают о диалекте, они просто называют его «LISP» ...
priestc
2
@priestc Я знаю, что этот вопрос задавали 4 года назад, но чтобы прояснить это. Они используют «Схему».
дпдт
33

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

FBL
источник
23

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

В качестве Схемы выберите « Язык программирования схем Кент Дибвиг» , а затем «SICP».

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

После этого посмотрите Лисп в «Маленьких пьесах » Квиннека и Норвиг в «Книге искусственного интеллекта» .

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

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

Чарли Мартин
источник
19

Возьмите Землю Лиспа от Конрада Барского. Это веселое введение в программирование на Лиспе с использованием мультфильмов и игр.

Эшвин Нанджаппа
источник
17

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

JesperE
источник
1
Я уже являюсь хорошим участником Project Euler, так что да, я потрачу там время на практику LISP (как только я научусь делать пару вещей)
DFectuoso
9

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

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

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

Скотт Вишневски
источник
8

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

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

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

adolfojp
источник
2
Проблема здесь в том, что кто-то не рассказал вам об учебнике; нажмите Control-H, отпустите их и нажмите T. Это приведет вас к обучающей программе, которая даст вам все необходимое для начала работы. Жаль слышать о вашем плохом опыте.
JasonFruit
7
+1 за ссылку на старую регулярную шутку, но -1 за бесполезность. :-P
Майкл Х.
7

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

Амит
источник
Во-вторых, это отличная книга, хорошо написанная и более вдохновляющая, чем Практический Общий Лисп.
Йохан Котлински
6

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

Стив Роу
источник
6

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

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

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

еще одна вещь, вам понадобится среда для работы. Я нашел Лисп в коробке, чтобы работать хорошо. Он работает на Windows и Linux и использует eMac.

BlueBadger
источник
5

Меня привлекли LISP его диалектом JVM - Clojure. Clojure - это отличный LISP, так как

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

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

Когда дело доходит до ресурсов, есть как минимум 4 книги и много онлайн-ресурсов:

  • Книги: «Радость Clojure» - очень проницательная, но может быть трудная, поэтому ее лучше читать вместе с «Programj Clojure».
  • Онлайн-уроки: Учебник Марка Фолькмана великолепен
  • см. также /programming/599519/which-tutorial-on-clojure-is-best
  • Веб- сайт 4Clojure содержит ряд простых задач по программированию, поэтому вы можете поиграть с Clojure и увидеть решения других людей.
Петр Кочанский
источник
4

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

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

Ферруччо
источник
4
«На Лиспе» можно свободно скачать с сайта автора.
user49117
3
Вот ссылка для скачивания на Лиспе бесплатно. Ссылка
Эндрю-Дюфрен
4

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

Ким Стебель
источник
Вы знаете, очень грустно видеть все веб-серверы и фреймворки вокруг lisp, которые ориентированы на веб-сайты ... имеют нулевой дизайн (CSS или даже встроенный стиль
DFectuoso
4

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

Энди Дент
источник
2

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

hajovonta
источник
1

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

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

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

Удачи тебе !


источник
1

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

Удачи


источник
Спасибо, я собираюсь выбрать некоторые книги сегодня и начать очень рано завтра!
DFectuoso
Обратите внимание, что SBCL для Common LISP, а книга о Схеме. Я еще не прочитал это полностью, но я думаю, что он все еще может быть большим подспорьем для изучения Common LISP. Вам просто нужно найти эквиваленты в Common LISP.
Зельфир Кальцталь
1

Возьмите ведро (и) и отправляйтесь в город ..

шанс
источник
0

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

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

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

Джон Эриксон
источник
0

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

Абайджит
источник