Який найкращий спосіб вивчити LISP? [зачинено]


167

Я програю в Python, PHP, Java та C вже пару-трійку років, і я щойно закінчив читати хакерів та живописців, тому мені б хотілося спробувати LISP!

Я розумію, що це абсолютно відрізняється від того, що я знаю, і що це буде непросто. Крім того, я думаю (будь ласка, виправте мене, якщо я помиляюся) існує набагато менше спільноти та розвитку навколо LISP. Отже, моє запитання: який найкращий спосіб засвоїти LISP?

Я б не проти купувати книги чи вкладати якийсь час. Я просто не хочу, щоб це було марно.

"Кінцевою" ідеєю було б використовувати LISP для веб-розробки, і я знаю, що це не так часто, тому що ... Я знаю, що добре запланувати своє навчання перед тим, як вибрати першу книгу чи підручник і витратити багато часу на те, що може не будь найкращим способом!

Дякую всім за відповіді!

редагувати: Я читав Практичний звичайний Лісп і був: ... довгий, важкий, цікавий і, безумовно, змусив мене кататись у Ліспі, після цього я прочитав маленьку схему, і це було коротко, весело і дуже добре для мого загального програмування. Тож моя рекомендація - прочитати спершу маленький схимер, потім (його пара годин і варто), якщо ви вирішите lisp (або схему чи будь-який діалект) - це не те, що ви шукаєте, ви все одно будете дуже весело новий спосіб мислення про рекурсію!


Common Lisp: Інтерактивний підхід . Стара (1992 р.) Книга Стюарта Шапіро. Раніше було лише мертвим деревом, але останніми роками доступно в електронному вигляді .
Каз

Звичайний LISPCraft Роберта Віленського - цікава, хоч і стара, книга. У мене є паперова копія, датована 1986 р.
Каз

Відповіді:


114

Спробуйте прочитати « Практичний звичайний Lisp» , Пітер Сейбель.


2
Я думаю, що я побачив цю книгу в своєму кампусі ... так погано підберіть її прямо зараз!
DFectuoso

2
Не забувайте про REPL! Я не використовував те, що я дізнався про LISP, але це зробило мене набагато кращим програмістом на всіх інших мовах.
Роберт К

1
дуже рекомендую, це була книга, яку ми використовували для мого класу AI, щоб навчити нас LISP для наших проектів.
привіт

6
DFectuoso - це не просто посилання про книзі, то це книга. Почніть читати книгу в Інтернеті
Аарон

2
Так, я знаю, але мені не подобається читати на моніторі ... все одно я вибрав це як відповідь, тому що я почав читати книгу, і це добре (я більше половини її, а потім погано читаю маленький монтер, відредагую це, коли я закінчую обидва = 0)
DFectuoso

76

Мій особистий фаворит - « Структура та інтерпретація комп'ютерних програм» Абельсона та Суссмана . Він використовує схему, яка є приємним і чистим діалектом Ліспа.

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


1
У Пола Грема є веб-фреймворк, який називається дугою.
сірий

15
Я вважаю, що Arc - це власний діалект Ліспа, а не просто рамки. paulgraham.com/arc.html
michiakig

55

Ви можете почати з «Маленького схему» як розминку. Це не практична книга про написання виробничих програм Lisp, але це чудова книга для того, щоб навчитися думати в Ліспі.


Це здається гарним і швидким читанням для початку! TY
DFectuoso

5
Я би схильний не погоджуватися. Так, занурення в нього може бути найшвидшим способом навчити Лісп, але це також найімовірніше відвернути людей. PCL має перевагу в тому, що досвідчені програми можуть почати використовувати Lisp з 1 дня, замість того, щоб просто поспішати
Aaron

43

MIT зробив доступним весь курс LISP у форматі DIVX та MPEG. Я дуже рекомендую його.

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


3
Лекції базуються на їхніх підручниках, структурі та інтерпретації комп’ютерних програм.
сірий

7
Я виявив, що відео DivX мають подібну якість, як у відео MPEG, навіть якщо вони набагато менші. Економте собі пропускну здатність і дисковий простір.
Дрю Ноакс

2
Для ще більшої економії місця на диску перейдіть за посиланням та шукайте "структуру та інтерпретацію" (використовуючи лапки).
Білл Еванс у Маріпосі

Я переглядаю відео SICP. Який діалект вони вживають? Вони не згадують діалект, вони просто називають його "LISP" ...
svec

2
@priestc Я знаю, що це питання було задано 4 роки тому, але просто для того, щоб було зрозуміло. Вони використовують "Схему".
dptd

33

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


23

Тут є кілька варіантів. Перш за все, схема і звичайний Лісп досить різняться досить глибокими способами (як, наприклад, масштабування); ви повинні вибрати один для початку і дотримуватися його деякий час . Я прихильник звичайного Лиса, але це може бути одним із тих релігійних питань vi-vs-EMACS.

Щоб отримати схему, перейдіть до мови програмування Кента Дібвіга , а потім - SICP.

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

Після цього подивіться на Лісп у маленьких п’єсах Квенека та на Ліппі Норвіга в книзі AI .

У Marty Hall є хороший список у Джонса Хопкінса.

Оновлено : я не маю на увазі дотримуватися цього назавжди, лише те, що намагатися навчитися обох відразу, буде заплутаним.


19

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


17

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


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

9

Ansi Common Lisp від Paul Graham - це хороша книга.

Я думаю, що це може бути надруковано, тому найкраще ставити його через Amazon. Я отримав книгу для класу "Обробка природних мов", який я пройшов у другому курсі в коледжі. Нам довелося писати проекти програмування в LISP, і тому мені потрібно було швидко вивчити Лісп.

Книга мені дуже допомогла.


8

Одного разу у мене виникли проблеми. Я не знав, як Лисп. Тому я вирішив завантажити LISP у коробці.

Тоді я опинився з установкою Emacs без допомоги та документації.

Тоді у мене були дві проблеми.


2
Проблема тут полягає в тому, що хтось не розповів вам про підручник; натисніть Control-H, відпустіть їх і натисніть T. Це переведе вас до підручника, який дасть вам усе необхідне для початку роботи. Вибачте за ваш поганий досвід.
JasonFruit

7
+1 за посилання на старий жарт з регулярними виразками, але -1 за те, що він не є корисним поверх нього. :-P
Майкл Х.

7

Для серйозних учнів я рекомендую PAIP від Norvig . Це прекрасний ресурс для вивчення як Lisp, так і AI.


По-друге, це чудова книга, добре написана та IMO надихаюча, ніж Практичний звичайний Лисп.
Йохан Котлінський

6

Берклі пропонує CS61a у форматі подкастів. Це вступ до класу CS, що базується навколо SICP. Це більш сучасна версія, ніж наявні у 1982 році відео MIT.


6

Я зараз працюю через Лісп і натрапив на "книгу", щоб дізнатися Лісп. Це запропонував Райнер Йозвіг

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

Я також переглянув практичний ліп, і думаю, що автор осягає багато необхідної інформації, навіть для досвідченого програміста. Ця книга, схоже, не робить цього (я не повністю закінчена, але вважаю, що це досить корисно, щоб запропонувати).

ще одне, для роботи вам знадобиться середовище. Я знайшов Lisp in Box, щоб добре працювати. Він працює в Windows та Linux і використовує eMacs.


5

Мене приваблює LISP своїм діалектом JVM - Clojure. Clojure - це щось велике LISP, оскільки

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

Іншими словами, Clojure можна використовувати у виробництві прямо зараз, прямо зараз.

Що стосується ресурсів, то є щонайменше 4 книги та найсвіжіші Інтернет-ресурси:

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

4

Мені подобалося читати Практичний загальний LISP та ANSI Common LISP .

На LISP виглядає цікаво, але за 190 доларів це здається трохи дорогим для книги.


4
"On Lisp" доступний вільно з веб-сайту автора.
user49117

3
Ось посилання для завантаження On Lisp безкоштовно. Посилання
Andrew-Dufresne

4

Для розробки веб-сайтів, можливо, ви хочете подивитися на hunchentoot , веб-сервер, написаний загальним lisp.


Ви знаєте, дуже сумно бачити всі веб-сервери та рамки навколо lisp, які орієнтовані на веб-сайти ... мають дизайн ZERO (стиль css чи навіть вбудований стиль
DFectuoso

4

Я виявив, що робота над вправами в "Маленькому схеме" справді допомогла відірвати рекурсивну сторону мого мислення, що зробило роботу набагато простішою.


2

Рекомендую спершу Поважне вступ до символічних обчислень або практичного звичайного Lisp, виходячи з досвіду програмування. Для занять я використовую Allegro CL 8.2 Free Express Edition у Windows. Це перетворює практику в дуже весело.


1

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

Я вивчила LISP на своїх класах AI та Expert System в коледжі, але так я і вчуся ... Я не чудовий студент, я вважаю за краще, щоб хтось пояснив мені це в класі.

LISP, безумовно, унікальна мова, і для цього потрібен новий порядок думок, якщо ви звикли до звичайного програмування на C, Java, PHP.

Удачі вам!


1

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

Удачі


Дякую, я збираюся сьогодні вибрати деякі книги та розпочати дуже рано завтра!
DFectuoso

Зауважте, що SBCL призначений для загального LISP, і книга про схему. Я ще не прочитав його повністю, але думаю, що все ще може бути корисною для вивчення загального LISP. Вам просто потрібно знайти еквіваленти у загальному LISP.
Зельфір Кальтшталь


0

Я не знаю, що в Lisp є щось особливе, що відрізняє його від вивчення будь-якої іншої мови. Потрібно просто почати користуватися ним і випробувати його функції.

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

Іншим варіантом, специфічним для Lisp, є написання розширення Emacs, яке допоможе вам у вашій регулярній роботі.


0

Прочитайте ці книги для того, щоб: Ніжний вступ до символічних обчислень, ANSI Common Lisp від Пола Грехема, а потім перейдіть до Практичного загального Lisp. Або пропустіть ACL і використовуйте його як орієнтир, працюючи через PCL.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.