Jaki jest najlepszy sposób na naukę LISP-a? [Zamknięte]

167

Programuję w Pythonie, PHP, Javie i C od kilku lub lat i właśnie skończyłem czytać Hackers and Painters, więc chciałbym wypróbować LISP!

Rozumiem, że jest to zupełnie inne niż to, co wiem i że nie będzie to łatwe. Myślę też (proszę, popraw mnie, jeśli się mylę) jest znacznie mniej społeczności i rozwoju wokół LISP-a. Więc moje pytanie brzmi: jaki jest najlepszy sposób na naukę LISP-a?

Nie miałbym nic przeciwko kupowaniu książek lub inwestowaniu czasu. Po prostu nie chcę, żeby się zmarnowało.

„Ostatnim” pomysłem byłoby użycie LISP-a do tworzenia stron internetowych. Wiem, że nie jest to tak powszechne, więc ... Wiem, że dobrze jest zaplanować naukę przed wybraniem pierwszej książki lub samouczka i spędzeniem dużo czasu nad czymś, co może nie bądź najlepszy sposób!

Dziękuję wszystkim za odpowiedzi!

edycja: Przeczytałem Practical Common Lisp i było: ... długie, trudne, interesujące i zdecydowanie sprawiło, że toczyłem się w Lisp, potem przeczytałem małego schematu i było to krótkie, zabawne i bardzo dobre dla mojego ogólnego programowania. Więc radziłbym najpierw przeczytać małego intryganta, a potem (to kilka godzin i warto), jeśli zdecydujesz, że seplenienie (lub schemat lub jakikolwiek inny dialekt) nie jest tym, czego szukasz, nadal będziesz się bardzo dobrze bawić nowy sposób myślenia o rekursji!

DFectuoso
źródło
Common Lisp: podejście interaktywne . Stara (1992) książka Stuarta Shapiro. Kiedyś było tylko martwym drzewem, ale w ostatnich latach dostępne w formie elektronicznej .
Kaz
Common LISPCraft Roberta Wilensky'ego to ciekawa, choć stara książka. Mam wydruk z 1986 r.
Kaz,

Odpowiedzi:

114

Spróbuj przeczytać Practical Common Lisp autorstwa Petera Seibela.

Avi
źródło
2
Myślę, że widziałem tę książkę w moim kampusie ... więc idź ją teraz odebrać!
DFectuoso
2
Nie zapomnij o REPL! Nie korzystałem z tego, czego nauczyłem się o LISP-ie, ale dzięki temu jestem znacznie lepszym programistą we wszystkich innych językach.
Robert K
1
gorąco polecam, z tej książki korzystaliśmy na moich zajęciach z AI, aby nauczyć nas LISP-a w naszych projektach.
helloandre
6
DFectuoso - to nie tylko związek o książki, to jest książka. Zacznij czytać książkę online
Aaron
2
Tak, wiem, ale nie lubię czytać na monitorze ... w każdym razie wybrałem to jako odpowiedź, bo zacząłem czytać książkę i jest dobra (mam ponad połowę, a potem czytam małego intryganta, edytuję to, kiedy
kończę
76

Moim ulubionym jest Abelson & Sussman Structure and Interpretation of Computer Programs . Używa Scheme, który jest ładnym i czystym dialektem Lispa.

Jeśli podoba ci się bardziej praktyczne podejście, może powinieneś wybrać jakiś framework Lispa do projektowania stron internetowych (nie mam pojęcia, czy taka bestia istnieje) i wskoczyć od razu.

starblue
źródło
1
Paul Graham ma framework sieciowy sepleniany o nazwie arc.
graywh
15
Uważam, że Arc jest własnym dialektem Lispa, a nie tylko ramą. paulgraham.com/arc.html
michiakig
55

Możesz zacząć od The Little Schemer jako rozgrzewki. Nie jest to praktyczna książka o pisaniu programów produkcyjnych w Lispie, ale jest to świetna książka do nauki myślenia w Lispie.

John D. Cook
źródło
Wydaje się, że to dobra i szybka lektura na początek! TY
DFectuoso
5
Mógłbym się nie zgodzić. Tak, zanurzenie się w tym może być najszybszym sposobem nauczenia się Lispa, ale jest też najbardziej prawdopodobne, że odstraszy ludzi. PCL ma tę zaletę, że doświadczone programy mogą zacząć używać Lispa od pierwszego dnia, zamiast być po prostu mesmoryzowanym
Aaron
43

MIT udostępnił cały kurs LISP w formacie DIVX i MPEG. Gorąco polecam.

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

user49978
źródło
3
Wykłady są oparte na ich podręczniku Struktura i interpretacja programów komputerowych.
graywh
7
Zauważyłem, że filmy DivX mają podobną jakość do filmów MPEG, mimo że są znacznie mniejsze. Oszczędzaj przepustowość i miejsce na dysku.
Drew Noakes
2
Aby uzyskać jeszcze więcej oszczędności miejsca na dysku, przejdź do łącza i wyszukaj hasło „struktura i interpretacja” (w cudzysłowie).
Bill Evans na Mariposa,
Przeglądam filmy SICP. Jakiego dialektu używają? Nie wspominają o dialekcie, po prostu nazywają go
``
2
@priestc Wiem, że to pytanie zostało zadane 4 lata temu, ale tylko po to, aby było jasne. Używają „Schematu”.
dptd
33

Jest teraz książka zatytułowana „Land of LISP”, która uczy programowania LISP poprzez pisanie gier tekstowych w stylu lat 80-tych. Czytam go teraz i jest bardzo dobrze napisany i nie traktuje siebie zbyt poważnie, co mi się podoba.

fbl
źródło
23

Istnieje kilka opcji. Po pierwsze, Scheme i Common Lisp są dość różne w dość głębokich aspektach (np. Scoping); powinieneś wybrać jeden na początek i trzymać się go przez chwilę . Jestem fanem Common Lisp, ale to może być jedno z pytań religijnych vi-vs-EMACS.

W przypadku Scheme przejdź do Scheme Programming Language Kent Dybvig , a następnie SICP.

W przypadku Common Lisp, jak również Practical Common Lisp, poleciłbym Successful Lisp Davida Lamkinsa . Udany Lisp jest również dostępny online za darmo .

Następnie spójrz na Lispa w Small Pieces autorstwa Queinnec i Lisp Norviga w książce AI .

Marty Hall ma niezłą listę w Johns Hopkins.

Aktualizacja : Nie mam na myśli trzymania się tego wiecznie, po prostu próba nauczenia się obu naraz byłaby myląca.

Charlie Martin
źródło
19

Pick up The Land of Lisp Conrada Barskiego. Jest to zabawne wprowadzenie do programowania w Lispie przy użyciu kreskówek i gier.

Ashwin Nanjappa
źródło
17

Poleciłbym Project Euler jako doskonałe źródło drobnych problemów, których możesz użyć do nauczenia się nowego języka programowania.

JesperE
źródło
1
Jestem już dobrym uczestnikiem Projektu Euler, więc tak, czas, który tam spędzę, będzie
poświęcony
9

Ansi Common Lisp autorstwa Paula Grahama to dobra książka.

Myślę, że może się skończyć, więc najlepiej kup go przez Amazon. Dostałem książkę na zajęcia z „Przetwarzania języka naturalnego”, na drugim roku studiów. Musieliśmy pisać projekty programistyczne w LISP-ie, więc musiałem szybko nauczyć się Lispa.

Książka trochę mi pomogła.

Scott Wiśniewski
źródło
8

Kiedyś miałem problem. Nie znałem seplenienia. Postanowiłem więc pobrać LISP-a w pudełku.

Wtedy znalazłem się z instalacją Emacsa bez żadnej pomocy ani dokumentacji.

Wtedy miałem dwa problemy.

adolfojp
źródło
2
Problem polega na tym, że ktoś nie powiedział ci o samouczku; naciśnij Control-H, zwolnij je i naciśnij T. To przeniesie Cię do samouczka, który da ci wszystko, czego potrzebujesz, aby rozpocząć. Przykro mi z powodu twoich złych doświadczeń.
JasonFruit
7
+1 za odwoływanie się do starego żartu wyrażeń regularnych, ale -1 za nieprzydatność. :-P
Michael H.
7

Poważnym uczącym się polecam PAIP firmy Norvig. Jest to doskonałe źródło do nauki zarówno Lispa, jak i AI.

dobrze
źródło
Po drugie, jest to świetna książka, dobrze napisana i bardziej inspirująca IMO niż Practical Common Lisp.
Johan Kotlinski
6

Berkeley oferuje CS61a w formacie podcastu. To jest wprowadzenie do klasy CS opartej na SICP. Jest to bardziej nowoczesna wersja niż filmy dostępne w MIT z 1982 roku.

Steve Rowe
źródło
6

Pracuję teraz nad Lispem i natknąłem się na „książkę”, aby nauczyć się Lispa. Zaproponował to Rainer Joswig

Książka nosi tytuł Common Lisp: A Gentle Introduction to Symbolic Computation i można ją pobrać jako plik PDF. Autor zaczyna od podejścia podobnego do UML do Lispa w pierwszym rozdziale i stopniowo wprowadza coraz więcej składni Lispa.

Przyjrzałem się też praktycznemu seplenieniu i myślę, że autor przemyśla wiele potrzebnych informacji, nawet dla doświadczonego programisty. Wydaje się, że ta książka tego nie robi (nie jestem do końca skończona, ale uznałem ją za przydatną, aby zasugerować).

jeszcze jedno, będziesz potrzebować środowiska do pracy. Odkryłem, że Lisp in a Box działa dobrze. Działa w systemach Windows i Linux i korzysta z komputerów eMac.

BlueBadger
źródło
5

LISP przyciągnął mnie jego dialektem JVM - Clojure. Od tego czasu Clojure to świetny LISP

  • ma „uproszczoną składnię”, czyli mniej paratenów jest wymaganych, dostępny jest sprytnie zaprojektowany zestaw kolekcji
  • jest oparty na JVM, więc pod spodem jest stabilne, wydajne środowisko uruchomieniowe, dodatkowo cały ekosystem Java (biblioteki, np. sterowniki baz danych, narzędzia do budowania, IDE) jest w naszym zasięgu
  • Noir to dobra platforma internetowa, aplikacje można wdrażać na serwerach WWW i aplikacji Java

Innymi słowy, Clojure może być używany w produkcji właśnie tutaj, teraz.

Jeśli chodzi o zasoby, istnieją co najmniej 4 książki i planty zasobów internetowych:

Piotr Kochański
źródło
4

Z przyjemnością czytałem Practical Common LISP i ANSI Common LISP .

Na LISP-ie wygląda interesująco, ale koszt 190 $ wydaje się trochę drogi jak na książkę.

Ferruccio
źródło
4
„On Lisp” jest dostępny bezpłatnie na stronie autora.
user49117
3
Oto link do bezpłatnego pobrania On Lisp. Link
Andrew-Dufresne
4

W przypadku tworzenia stron internetowych możesz rzucić okiem na hunchentoot , serwer WWW napisany w zwykłym lisp.

Kim Stebel
źródło
Wiesz, bardzo smutno jest widzieć wszystkie serwery internetowe i frameworki wokół seplenienia, które są zorientowane na sieć ... mają projekt ZERO (css lub nawet styl inline
DFectuoso
4

Odkryłem, że praca nad ćwiczeniami z „Małego intryga” naprawdę pomogła udoskonalić rekurencyjną, dopasowującą się do wzorców stronę mojego myślenia i znacznie ułatwiła pracę w XSLT.

Andy Dent
źródło
2

Najpierw polecam Delikatne wprowadzenie do obliczeń symbolicznych lub Practical Common Lisp, w oparciu o twoje doświadczenia programistyczne. Do ćwiczeń używam Allegro CL 8.2 Free Express Edition w systemie Windows. To sprawia, że ​​ćwiczenie staje się świetną zabawą.

hajovonta
źródło
1

Trudne pytanie… Myślę, że wszystko zależy od Twojego stylu uczenia się.

Uczyłem się LISP-a na moich zajęciach z AI i Expert Systems w college'u, ale tak się uczę ... Nie jestem dobrym uczniem książek, wolę, aby ktoś mi to wyjaśnił na zajęciach.

LISP jest zdecydowanie unikalnym językiem i wymaga nowego myślenia, jeśli jesteś przyzwyczajony do konwencjonalnego programowania w C, Javie, PHP.

Powodzenia !


źródło
1

Odkryłem, że przeczytanie książki SICP naprawdę pomogło mi się nauczyć. Użyłem Steel Bank Common Lisp (SBCL) i odniosłem z nim dobry sukces.

Powodzenia


źródło
Dzięki. Dzisiaj wybiorę kilka książek i jutro zacznę bardzo wcześnie!
DFectuoso
Zauważ jednak, że SBCL jest dla Common LISP, a książka jest o Schemacie. Nie przeczytałem go jeszcze do końca, ale myślę, że nadal może być bardzo pomocny w nauce Common LISP. Wystarczy znaleźć odpowiedniki w Common LISP.
Zelphir Kaltstahl,
1

Chwyć wiadro (i) i jedź do miasta.

Szansa
źródło
0

Nie wiem, czy jest coś wyjątkowego w Lisp, co odróżnia go od nauki jakiegokolwiek innego języka. Wystarczy zacząć go używać i wypróbować jego funkcje.

Jedną z opcji może być wypróbowanie prostego projektu .

Inną opcją, specyficzną dla Lispa, byłoby napisanie rozszerzenia Emacsa, które pomoże ci w normalnej pracy.

Jon Ericson
źródło
0

Przeczytaj te książki w kolejności: Delikatne wprowadzenie do obliczeń symbolicznych, ANSI Common Lisp autorstwa Paula Grahama, a następnie przejdź do Practical Common Lisp. Lub pomiń listę ACL i używaj jej jako odniesienia podczas pracy z językiem PCL.

Abhijith
źródło