Apa cara terbaik untuk belajar LISP? [Tutup]

167

Saya telah memprogram dalam Python, PHP, Java dan C selama beberapa atau tahun sekarang, dan saya baru saja selesai membaca Hacker dan Pelukis, jadi saya ingin mencoba LISP!

Saya mengerti benar-benar berbeda dari apa yang saya tahu dan itu tidak akan mudah. Juga saya pikir (tolong perbaiki saya jika saya salah) ada sedikit komunitas dan pengembangan di sekitar LISP. Jadi pertanyaan saya adalah: apa cara terbaik untuk belajar LISP?

Saya tidak keberatan membeli buku atau menginvestasikan waktu. Aku hanya tidak ingin itu sia-sia.

Gagasan "final" adalah menggunakan LISP untuk pengembangan web, dan saya tahu itu tidak terlalu umum jadi ... Saya tahu itu baik untuk merencanakan pembelajaran saya sebelum memilih buku atau tutorial pertama dan menghabiskan banyak waktu untuk sesuatu yang mungkin tidak jadilah cara terbaik!

Terima kasih atas jawaban Anda!

sunting: Saya membaca Praktis Common Lisp dan adalah: ... panjang, keras, menarik dan pasti membuat saya berputar di Lisp, setelah itu saya membaca schemer kecil, dan itu singkat, menyenangkan dan sangat sangat bagus untuk keseluruhan pemrograman saya. Jadi rekomendasi saya adalah membaca dulu siasat kecil, lalu (beberapa jam dan nilainya) jika Anda memutuskan lisp (atau skema atau dialek apa pun) bukan yang Anda cari, Anda masih akan bersenang-senang. cara berpikir baru tentang rekursi!

DFectuoso
sumber
Common Lisp: Suatu Pendekatan Interaktif . Buku Old (1992) karya Stuart Shapiro. Dulu pohon mati saja, tetapi dalam beberapa tahun terakhir tersedia dalam bentuk elektronik .
Kaz
LISPCraft umum karya Robert Wilensky adalah buku yang menarik, jika sudah tua. Saya memiliki salinannya, bertanggal 1986.
Kaz

Jawaban:

114

Coba baca Praktis Common Lisp , oleh Peter Seibel.

Avi
sumber
2
Saya pikir saya melihat buku itu di kampus saya ... jadi saya pergi mengambilnya sekarang!
DFectuoso
2
Jangan lupa tentang REPL! Saya belum menggunakan apa yang saya pelajari tentang LISP, tetapi itu membuat saya menjadi programmer yang jauh lebih baik dalam semua bahasa lainnya.
Robert K
1
sangat merekomendasikannya, ini adalah buku yang kami gunakan untuk kelas AI saya untuk mengajarkan kami LISP untuk proyek kami.
helloandre
6
DFectuoso - ini bukan hanya tautan tentang buku, itu adalah bukunya. Mulailah membaca buku itu secara online
Aaron
2
Ya saya tahu tetapi saya tidak suka membaca di monitor ... toh saya memilih ini sebagai jawaban karena saya mulai membaca buku dan itu bagus (im lebih dari setengahnya dan kemudian sakit membaca siasat kecil, akan mengedit ini ketika saya menyelesaikan keduanya = 0)
DFectuoso
76

Favorit pribadi saya adalah Abelson & Sussman Structure dan Interpretasi Program Komputer . Ini menggunakan Skema, yang merupakan dialek Lisp yang bagus dan bersih.

Jika Anda menyukai pendekatan yang lebih praktis mungkin Anda harus memilih beberapa kerangka kerja Lisp untuk desain web (saya tidak tahu apakah ada binatang seperti itu) dan langsung masuk.

starblue
sumber
1
Paul Graham memiliki kerangka kerja web yang disebut arc.
graywh
15
Saya percaya Arc adalah dialek Lisp sendiri, bukan hanya kerangka kerja. paulgraham.com/arc.html
michiakig
55

Anda mungkin ingin memulai dengan The Little Schemer sebagai pemanasan. Ini bukan buku praktis tentang menulis program produksi Lisp, tetapi buku yang bagus untuk mempelajari cara berpikir dalam Lisp.

John D. Cook
sumber
Itu sepertinya pembacaan yang bagus dan cepat untuk memulai! TY
DFectuoso
5
Saya cenderung tidak setuju. Ya, menyelam ke dalamnya mungkin merupakan cara tercepat untuk mempelajari Lisp, tetapi juga kemungkinan besar untuk membuat orang menjauh. PCL memiliki keuntungan bahwa program yang berpengalaman dapat mulai menggunakan Lisp dari hari 1, alih-alih hanya menjadi mesorisasi
Aaron
43

MIT telah menyediakan seluruh kursus LISP dalam format DIVX dan MPEG. Saya sangat merekomendasikannya.

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

pengguna49978
sumber
3
Kuliah didasarkan dari buku teks mereka, Struktur dan Interpretasi Program Komputer.
graywh
7
Saya menemukan video DivX memiliki kualitas yang mirip dengan video MPEG, meskipun mereka jauh lebih kecil. Simpan sendiri bandwidth dan ruang disk.
Drew Noakes
2
Untuk lebih menghemat ruang disk, buka tautan dan cari "struktur dan interpretasi" (menggunakan tanda kutip).
Bill Evans di Mariposa
Saya akan melalui video SICP. Dialek mana yang mereka gunakan? Mereka tidak menyebutkan dialek, mereka hanya menyebutnya 'LISP' ...
priestc
2
@priestc Saya tahu pertanyaan ini ditanyakan 4 tahun yang lalu tetapi hanya untuk membuatnya jelas. Mereka menggunakan "Skema".
dptd
33

Sekarang ada sebuah buku berjudul 'Land of LISP' yang mengajarkan pemrograman LISP melalui penulisan permainan teks gaya 80-an. Saya membacanya sekarang, dan ini ditulis dengan sangat baik dan tidak terlalu serius, yang saya suka.

fbl
sumber
23

Ada beberapa opsi di sini. Pertama-tama, Skema dan Common Lisp cukup berbeda dalam cara yang agak mendalam (seperti pelingkupan); Anda harus memilih satu untuk memulainya dan tetap menggunakannya untuk sementara waktu . Saya penggemar Common Lisp, tapi itu mungkin salah satu pertanyaan agama vi-vs-EMACS.

Untuk Skema, pilih Bahasa Pemrograman Skema Kent Dybvig , diikuti oleh SICP.

Untuk Common Lisp, dan juga Common Lisp Praktis, saya akan merekomendasikan David Lamkins's Successful Lisp. Lisp yang sukses juga tersedia online secara gratis .

Setelah daripada, lihat Lisp dalam Potongan Kecil oleh Queinnec, dan Norvig's Lisp dalam buku AI .

Marty Hall memiliki daftar yang bagus di Johns Hopkins.

Dimutakhirkan : Maksud saya tidak menaatinya selamanya, hanya saja mencoba mempelajari keduanya sekaligus akan membingungkan.

Charlie Martin
sumber
19

Ambil The Land of Lisp oleh Conrad Barski. Ini adalah pengantar diisi menyenangkan untuk pemrograman Lisp menggunakan kartun dan game.

Ashwin Nanjappa
sumber
17

Saya akan merekomendasikan Project Euler sebagai sumber masalah kecil yang bisa Anda gunakan untuk mengajari diri sendiri bahasa pemrograman baru.

JesperE
sumber
1
Saya sudah menjadi peserta yang baik dari Project Euler jadi ya, waktu yang saya habiskan di sana akan berlatih LISP (setelah saya belajar bagaimana melakukan beberapa hal)
DFectuoso
9

Ansi Common Lisp oleh Paul Graham adalah buku yang bagus.

Saya pikir itu mungkin tidak dicetak, jadi taruhan terbaik Anda untuk mendapatkannya melalui Amazon. Saya mendapat buku untuk kelas "Natural Language Processing" yang saya ambil tahun kedua di perguruan tinggi. Kami harus menulis proyek program di LISP, jadi saya perlu belajar Lisp dengan cepat.

Buku itu sedikit membantu saya.

Scott Wisniewski
sumber
8

Suatu kali saya punya masalah. Saya tidak tahu apa-apa. Jadi saya memutuskan untuk mengunduh LISP dalam satu kotak.

Kemudian saya menemukan diri saya dengan instalasi Emacs tanpa bantuan atau dokumentasi.

Lalu saya punya dua masalah.

adolfojp
sumber
2
Masalahnya di sini adalah seseorang tidak memberi tahu Anda tentang tutorial; tekan Control-H, lepaskan, dan tekan T. Itu akan membawa Anda ke tutorial yang akan memberi Anda semua yang Anda butuhkan untuk memulai. Maaf mendengar tentang pengalaman buruk Anda.
JasonFruit
7
+1 untuk referensi lelucon regex lama, tetapi -1 karena tidak berguna di atasnya. :-P
Michael H.
7

Untuk pelajar yang serius, saya akan merekomendasikan PAIP dari Norvig. Ini adalah sumber yang bagus untuk mempelajari Lisp dan AI.

ya
sumber
Saya kedua ini, itu buku yang bagus, ditulis dengan baik dan IMO lebih menginspirasi daripada Praktis Common Lisp.
Johan Kotlinski
6

Berkeley menawarkan CS61a dalam format podcast. Ini adalah kelas intro ke CS yang berbasis di sekitar SICP. Ini adalah versi yang lebih modern daripada video 1982 yang tersedia di MIT.

Steve Rowe
sumber
6

Saya sedang mengerjakan Lisp sekarang dan menemukan "buku" untuk mempelajari Lisp. Itu disarankan oleh Rainer Joswig

Buku ini disebut Common Lisp: A Introduction to Symbolic Computation dan dapat diunduh sebagai PDF. Penulis mulai dengan pendekatan seperti UML ke Lisp di bab pertama dan secara bertahap memperkenalkan sintaks Lisp semakin banyak.

Saya juga telah melihat cadel praktis dan saya pikir bahwa penulis membahas banyak informasi yang diperlukan, bahkan untuk programmer berpengalaman. Buku ini tampaknya tidak melakukan itu (saya belum selesai, tetapi merasa cukup bermanfaat untuk disarankan).

satu hal lagi, Anda perlu lingkungan untuk bekerja. Saya menemukan Lisp dalam Kotak untuk bekerja dengan baik. Ini berjalan pada Windows dan Linux dan menggunakan eMac.

BlueBadger
sumber
5

Saya tertarik pada LISP dengan dialek JVM - Clojure. Clojure adalah semacam LISP yang hebat, karena

  • ia memiliki "sintaks yang disederhanakan", yaitu dibutuhkan parathensis yang lebih sedikit, ada set koleksi desain yang cerdik yang tersedia
  • berbasis JVM, jadi ada runtime yang stabil dan berkinerja di bawahnya, selain itu seluruh ekosistem Java (pustaka, mis. driver basis data, alat bangun, IDE) berada dalam jangkauan kami
  • Noir adalah kerangka kerja web yang bagus, aplikasi dapat digunakan di web Java dan server aplikasi

Dengan kata lain, Clojure dapat digunakan dalam produksi di sini, saat ini.

Ketika datang ke sumber daya, setidaknya ada 4 buku dan sumber daya online planty:

Piotr Kochański
sumber
4

Saya senang membaca LISP Praktis Umum dan LISP Umum ANSI .

Pada LISP terlihat menarik, tetapi $ 190 tampaknya sedikit mahal untuk sebuah buku.

Ferruccio
sumber
4
"On Lisp" tersedia secara bebas dari situs web penulis.
user49117
3
Berikut ini tautan untuk mengunduh On Lisp secara gratis. Tautan
Andrew-Dufresne
4

Untuk pengembangan web, Anda mungkin ingin melihat hunchentoot , server web yang ditulis dengan bahasa umum.

Kim Stebel
sumber
Anda tahu, sangat menyedihkan melihat semua server web dan kerangka kerja di sekitar lisp yang berorientasi web ... memiliki desain NOL (css atau bahkan gaya sejajar
DFectuoso
4

Saya menemukan bekerja melalui latihan di "The Little Schemer" benar-benar membantu mengasah sisi rekursif, pencocokan pola pemikiran saya dan membuat bekerja di XSLT jauh lebih mudah.

Andy Dent
sumber
2

Saya merekomendasikan Pendahuluan yang Lembut untuk Perhitungan Simbolik atau Kesalahan Umum Praktis terlebih dahulu, berdasarkan pada pengalaman pemrograman Anda. Untuk berlatih, saya menggunakan Allegro CL 8.2 Free Express Edition di Windows. Ternyata berlatih menjadi sangat menyenangkan.

hajovonta
sumber
1

Semacam pertanyaan yang sulit dijawab ... Saya pikir itu semua tergantung pada gaya belajar Anda.

Saya belajar LISP di kelas AI dan Sistem Pakar saya di perguruan tinggi, tapi itulah cara saya belajar ... Saya bukan pembelajar buku yang hebat, saya lebih suka meminta seseorang menjelaskannya kepada saya dalam pengaturan kelas.

LISP jelas merupakan bahasa yang unik dan membutuhkan pemikiran baru jika Anda terbiasa dengan pemrograman C, Java, PHP konvensional.

Semoga beruntung untuk Anda!


sumber
1

Saya menemukan bahwa membaca buku SICP sangat membantu saya belajar. Saya menggunakan Steel Bank Common Lisp (SBCL) dan berhasil dengan baik.

Semoga berhasil


sumber
Terima kasih saya akan memilih beberapa buku hari ini dan mulai besok pagi sekali!
DFectuoso
Perhatikan bahwa SBCL adalah untuk LISP Umum dan buku ini tentang Skema. Saya belum membacanya sepenuhnya, tetapi saya pikir itu masih bisa sangat membantu untuk mempelajari Common LISP. Anda hanya perlu menemukan padanannya dalam Common LISP.
Zelphir Kaltstahl
1

Ambil seember (dan) dan pergi ke kota ..

Kesempatan
sumber
0

Saya tidak tahu bahwa ada sesuatu yang istimewa tentang Lisp yang membuatnya berbeda dari belajar bahasa lain. Anda hanya perlu mulai menggunakannya dan mencoba fitur-fiturnya.

Salah satu opsi mungkin untuk mencoba proyek sederhana .

Opsi lain, yang khusus untuk Lisp, adalah menulis ekstensi Emacs yang membantu Anda dalam pekerjaan rutin Anda.

Jon Ericson
sumber
0

Baca buku-buku ini secara berurutan: Pengantar Lembut untuk Perhitungan Simbolik, ANSI Common Lisp oleh Paul Graham dan kemudian beralih ke Praktis Common Lisp. Atau lewati ACL dan gunakan itu sebagai referensi saat bekerja melalui PCL.

Abhijith
sumber