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

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

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

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

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

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

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

23 ответа

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Удачи

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

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

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

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

Удачи тебе!

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

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

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

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

Другие вопросы по тегам