Cách tốt nhất để học LISP là gì? [đóng cửa]


167

Tôi đã lập trình bằng Python, PHP, Java và C được vài năm rồi và tôi vừa đọc xong Hackers and Painters, vì vậy tôi rất muốn thử LISP!

Tôi hiểu nó hoàn toàn khác với những gì tôi biết và nó sẽ không dễ dàng. Ngoài ra tôi nghĩ (xin vui lòng sửa lỗi cho tôi nếu tôi sai) có ít cộng đồng và sự phát triển xung quanh LISP. Vì vậy, câu hỏi của tôi là: cách tốt nhất để học LISP là gì?

Tôi không ngại mua sách hoặc đầu tư một chút thời gian. Tôi chỉ không muốn nó bị lãng phí.

Ý tưởng "cuối cùng" sẽ là sử dụng LISP để phát triển web và tôi biết điều đó không phổ biến lắm nên ... Tôi biết nên lập kế hoạch học tập trước khi chọn cuốn sách hoặc hướng dẫn đầu tiên và dành nhiều thời gian cho thứ gì đó có thể không là cách tốt nhất!

Cảm ơn tất cả các câu trả lời của bạn!

chỉnh sửa: Tôi đã đọc Lisp thực tế và là: ... dài, khó, thú vị và chắc chắn đã khiến tôi lăn lộn ở Lisp, sau đó tôi đọc sơ đồ nhỏ, và nó rất ngắn, vui và rất tốt cho lập trình tổng thể của tôi. Vì vậy, lời khuyên của tôi là trước tiên nên đọc sơ đồ nhỏ, sau đó (một vài giờ và giá trị của nó) nếu bạn quyết định lisp (hoặc lược đồ hoặc bất kỳ phương ngữ nào) không phải là thứ bạn tìm kiếm, bạn vẫn sẽ rất vui cách nghĩ mới về đệ quy!


Lisp thường gặp: Cách tiếp cận tương tác . Cuốn sách cũ (1992) của Stuart Shapiro. Được sử dụng chỉ là cây chết, nhưng trong những năm gần đây có sẵn ở dạng điện tử .
Kaz

LISPCraft thông thường của Robert Wilensky là một cuốn sách thú vị, nếu cũ ,. Tôi có một bản sao cứng, ngày 1986.
Kaz

Câu trả lời:


114

Hãy thử đọc Lisp thực tế chung , bởi Peter Seibel.


2
Tôi nghĩ rằng tôi đã thấy cuốn sách đó tại khuôn viên của mình ... thật tệ khi đi lấy nó ngay bây giờ!
DFectuoso

2
Đừng quên REPL! Tôi đã không sử dụng những gì tôi đã học về LISP, nhưng nó khiến tôi trở thành một lập trình viên giỏi hơn nhiều trong tất cả các ngôn ngữ khác.
Robert K

1
rất khuyến khích nó, đây là cuốn sách chúng tôi sử dụng cho lớp AI của tôi để dạy LISP cho các dự án của chúng tôi.
helloandre

6
DFectuoso - nó không chỉ là một liên kết về cuốn sách, nó cuốn sách. Bắt đầu đọc sách trực tuyến
Aaron

2
Vâng, tôi biết nhưng tôi không thích đọc trong màn hình ... dù sao tôi cũng chọn đây là câu trả lời vì tôi đã bắt đầu đọc cuốn sách và nó rất tốt (tôi đã đọc hơn một nửa rồi đọc sơ đồ nhỏ, sẽ chỉnh sửa nó khi tôi kết thúc cả hai = 0)
DFectuoso

76

Yêu thích cá nhân của tôi là Abelson & Sussman Cấu trúc và giải thích các chương trình máy tính . Nó sử dụng Scheme, một phương ngữ hay và sạch sẽ của Lisp.

Nếu bạn thích một cách tiếp cận thực tế hơn, có lẽ bạn nên chọn một số khung Lisp cho thiết kế web (tôi không biết có tồn tại một con thú như vậy không) và nhảy ngay vào.


1
Paul Graham có một khung web lisp gọi là arc.
Graywh

15
Tôi tin rằng Arc là phương ngữ riêng của Lisp, không chỉ là một khung. paulgraham.com/arc.html
michiakig

55

Bạn có thể muốn bắt đầu với The Little Schemer khi khởi động. Đây không phải là một cuốn sách thực tế về việc viết các chương trình sản xuất Lisp, nhưng nó là một cuốn sách tuyệt vời để học cách suy nghĩ trong Lisp.


Đó có vẻ như là một cách đọc tốt và nhanh chóng để bắt đầu! TY
DFectuoso

5
Tôi có xu hướng không đồng ý. Đúng vậy, lặn vào đó có thể là cách nhanh nhất để học Lisp, nhưng đó cũng là cách dễ khiến mọi người quay lưng nhất. PCL có lợi thế là các chương trình có kinh nghiệm có thể bắt đầu sử dụng Lisp từ ngày 1, thay vì chỉ bị mê hoặc
Aaron

43

MIT đã cung cấp toàn bộ khóa học LISP ở định dạng DIVX và MPEG. Tôi khuyên bạn nên nó.

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


3
Các bài giảng được dựa trên sách giáo khoa, Cấu trúc và Giải thích các Chương trình Máy tính.
Graywh

7
Tôi thấy các video DivX có chất lượng tương tự các video MPEG, mặc dù chúng nhỏ hơn rất nhiều. Tiết kiệm cho mình băng thông và dung lượng đĩa.
Drew Noakes

2
Để tiết kiệm dung lượng ổ đĩa hơn nữa, hãy truy cập liên kết và tìm kiếm "cấu trúc và giải thích" (sử dụng dấu ngoặc kép).
Bill Evans tại Mariposa

Tôi đi qua các video SICP. Họ đang sử dụng phương ngữ nào? Họ không đề cập đến bất kỳ phương ngữ nào, họ chỉ gọi nó là 'LISP' ...
linh mục

2
@priestc Tôi biết câu hỏi này đã được hỏi 4 năm trước nhưng chỉ để làm cho nó rõ ràng. Họ đang sử dụng "Đề án".
dptd

33

Hiện tại có một cuốn sách được gọi là 'Vùng đất của LISP' dạy về lập trình LISP thông qua việc viết các trò chơi văn bản theo phong cách 80. Tôi đang đọc nó, và nó được viết rất tốt và không quá nghiêm trọng, điều mà tôi thích.


23

Có một số lựa chọn ở đây. Trước hết, Scheme và Common Lisp khá khác nhau theo những cách khá sâu sắc (như phạm vi); bạn nên chọn một cái để bắt đầu và gắn bó với nó một lúc . Tôi là một người hâm mộ Lisp thông thường, nhưng đó có thể là một trong những câu hỏi tôn giáo vi-vs-EMACS.

Đối với Đề án, hãy sử dụng Ngôn ngữ lập trình lược đồ của Kent Dybvig , tiếp theo là SICP.

Đối với Lisp thông thường, cũng như Lisp thông thường thực tế, tôi muốn giới thiệu Lisp thành công của David Lamkins . Lisp thành công cũng có sẵn trực tuyến miễn phí .

Sau đó, hãy xem Lisp trong Những mảnh nhỏ của Queinnec và Lisp của Norvig trong cuốn sách AI .

Marty Hall có một danh sách đẹp tại Johns Hopkins.

Cập nhật : Tôi không có nghĩa là gắn bó mãi mãi, chỉ là cố gắng học cả hai cùng một lúc sẽ gây nhầm lẫn.


19

Đón Vùng đất Lisp của Conrad Barski. Đây là một giới thiệu đầy thú vị về lập trình Lisp bằng phim hoạt hình và trò chơi.


17

Tôi muốn giới thiệu Project Euler như một nguồn tuyệt vời cho các vấn đề nhỏ có kích thước cắn mà bạn có thể sử dụng để dạy cho mình bất kỳ ngôn ngữ lập trình mới nào.


1
Tôi đã sẵn sàng tham gia Dự án Euler vì vậy, thời gian tôi dành cho việc thực hành LISP (một khi tôi học được cách làm một vài thứ)
DFectuoso

9

Ansi Common Lisp của Paul Graham là một cuốn sách hay.

Tôi nghĩ rằng nó có thể đã được in ra, vì vậy đặt cược tốt nhất của bạn để có được nó thông qua Amazon. Tôi đã nhận được cuốn sách cho một lớp "Xử lý ngôn ngữ tự nhiên" mà tôi đã học năm thứ hai ở trường đại học. Chúng tôi đã phải viết các dự án lập trình trong LISP, và vì vậy tôi cần học Lisp nhanh chóng.

Cuốn sách đã giúp tôi khá nhiều.


8

Khi tôi gặp vấn đề. Tôi không biết lisp. Vì vậy, tôi quyết định tải xuống LISP trong một hộp.

Sau đó, tôi thấy mình có cài đặt Emacs mà không cần bất kỳ trợ giúp hay tài liệu nào.

Sau đó tôi có hai vấn đề.


2
Vấn đề ở đây là ai đó đã không nói với bạn về hướng dẫn; nhấn Control-H, thả chúng ra và nhấn T. Điều đó sẽ đưa bạn đến một hướng dẫn sẽ cung cấp cho bạn tất cả những gì bạn cần để bắt đầu. Xin lỗi khi nghe về trải nghiệm tồi tệ của bạn.
JasonFnut

7
+1 để tham khảo trò đùa regex cũ, nhưng -1 vì không hữu ích trên đầu trang. :-P
Michael H.

7

Đối với những người học nghiêm túc, tôi muốn giới thiệu PAIP từ Norvig. Đó là một nguồn tài nguyên tuyệt vời để tìm hiểu cả Lisp và AI.


Tôi thứ hai, đây là một cuốn sách tuyệt vời, được viết tốt và IMO truyền cảm hứng hơn so với Lisp thông thường thực tế.
Johan Kotlinski

6

Berkeley cung cấp CS61a ở định dạng podcast. Đây là phần giới thiệu về lớp CS dựa trên SICP. Đây là phiên bản hiện đại hơn video 1982 mà MIT có sẵn.


6

Tôi đang làm việc theo cách của mình thông qua Lisp ngay bây giờ và đã tìm thấy "cuốn sách" để tìm hiểu Lisp. Nó được đề xuất bởi Rainer Joswig

Cuốn sách có tên Common Lisp: Giới thiệu nhẹ nhàng về tính toán tượng trưng và có thể được tải xuống dưới dạng PDF. Tác giả bắt đầu với một cách tiếp cận giống như UML với Lisp trong chương đầu tiên và dần dần giới thiệu nhiều cú pháp Lisp hơn.

Tôi cũng đã xem xét thực tế và tôi nghĩ rằng tác giả đã che đậy rất nhiều thông tin cần thiết, ngay cả đối với một lập trình viên dày dạn kinh nghiệm. Cuốn sách này dường như không làm điều đó (Tôi chưa hoàn thành, nhưng đã thấy nó đủ hữu ích để đề xuất).

một điều nữa, bạn sẽ cần một môi trường để làm việc. Tôi đã tìm thấy Lisp in a Box để hoạt động tốt. Nó chạy trên Windows và Linux và sử dụng eMac.


5

Tôi đã bị thu hút bởi LISP bởi phương ngữ JVM của nó - Clojure. Clojure là một loại LISP tuyệt vời, kể từ khi

  • nó có "cú pháp đơn giản hóa", đó là yêu cầu ít parathensis hơn, có bộ thiết kế khéo léo của các bộ sưu tập có sẵn
  • nó dựa trên JVM, do đó, có thời gian chạy ổn định, hiệu suất bên dưới, ngoài ra toàn bộ hệ sinh thái Java (thư viện, ví dụ trình điều khiển cơ sở dữ liệu, công cụ xây dựng, IDE) nằm trong tầm tay của chúng tôi
  • Noir là một khung web tốt, các ứng dụng có thể được triển khai trên các máy chủ ứng dụng và web Java

Nói cách khác, Clojure có thể được sử dụng trong sản xuất ngay tại đây, ngay bây giờ.

Khi nói đến tài nguyên, có ít nhất 4 cuốn sách và tài nguyên trực tuyến thực vật:

  • Sách: "Niềm vui của Clojure" - rất sâu sắc nhưng có thể khó khăn, vì vậy tốt nhất nên đọc cùng với "Lập trình Clojure".
  • Hướng dẫn trực tuyến: Hướng dẫn Mark Volkmann rất tuyệt
  • xem thêm /programming/599519/which-tutorial-on-clojure-is-best
  • Trang web 4Clojure chứa một số nhiệm vụ lập trình đơn giản, vì vậy người ta có thể chơi với Clojure và xem giải pháp của người khác


4

Để phát triển web, bạn có thể muốn có một cái nhìn về hunchentoot , một máy chủ web được viết bằng ngôn ngữ chung.


Bạn biết đấy, rất buồn khi thấy tất cả các máy chủ web và khung xung quanh lisp được định hướng web ... có thiết kế ZERO (kiểu css hoặc thậm chí là nội tuyến
DFectuoso

4

Tôi thấy làm việc thông qua các bài tập trong "The Little Schemer" thực sự đã giúp cải thiện khía cạnh đệ quy, phù hợp với suy nghĩ của tôi và làm cho việc làm việc trong XSLT dễ dàng hơn đáng kể.


2

Tôi khuyên bạn nên giới thiệu nhẹ nhàng về tính toán tượng trưng hoặc Lisp thông dụng thực tế trước tiên, dựa trên kinh nghiệm lập trình của bạn. Để thực hành, tôi sử dụng Allegro CL 8.2 Free Express Edition trong Windows. Nó biến việc luyện tập thành rất nhiều niềm vui.


1

Một loại câu hỏi khó trả lời ... Tôi nghĩ tất cả phụ thuộc vào cách học của bạn.

Tôi đã học LISP trong các lớp AI và Expert Systems ở trường đại học, nhưng đó là cách tôi học ... Tôi không phải là người học sách tuyệt vời, tôi thích có ai đó giải thích cho tôi trong lớp học.

LISP chắc chắn là một ngôn ngữ độc đáo và nó đòi hỏi một luồng suy nghĩ mới nếu bạn đã quen với lập trình C, Java, PHP thông thường.

Nhưng điêu tôt đẹp nhât se đên vơi bạn !


1

Tôi thấy việc đọc cuốn sách SICP thực sự giúp tôi học hỏi. Tôi đã sử dụng Steel Bank Common Lisp (SBCL) và đã thành công với nó.

Chúc may mắn


Cảm ơn tôi sẽ chọn một số cuốn sách ngày hôm nay và bắt đầu rất sớm vào ngày mai!
DFectuoso

Tuy nhiên, xin lưu ý rằng SBCL dành cho LISP thông thường và cuốn sách nói về Đề án. Tôi chưa đọc nó hoàn toàn, nhưng tôi nghĩ nó vẫn có thể giúp ích rất nhiều cho việc học LISP chung. Bạn chỉ cần tìm các tương đương trong LISP chung.
Zelphir Kaltstahl


0

Tôi không biết rằng có gì đặc biệt về Lisp khiến nó khác với việc học bất kỳ ngôn ngữ nào khác. Bạn chỉ cần bắt đầu sử dụng nó và thử các tính năng của nó.

Một lựa chọn có thể là thử một dự án đơn giản .

Một lựa chọn khác, cụ thể cho Lisp, sẽ là viết một phần mở rộng Emacs hỗ trợ bạn trong công việc thường xuyên.


0

Đọc những cuốn sách này theo thứ tự: Giới thiệu nhẹ nhàng về tính toán tượng trưng, ​​Lisp chung ANSI của Paul Graham và sau đó chuyển sang thực hành Lisp chung. Hoặc bỏ qua ACL và sử dụng nó làm tài liệu tham khảo trong khi thực hiện theo cách của bạn thông qua PCL.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.