2009-01-12 30 views
6

im đọc Thực hành chung Lisp là kết quả của another question.Đang cố gắng tìm hiểu: Định hướng lại đối tượng và các chức năng chung trong LISP!

Tôi chỉ đọc chương 16 và 17 nơi bạn có thể tìm thấy cách LISP quản lý các đối tượng. Nhưng sau một vài năm suy nghĩ cách Java quản lý các đối tượng, tôi thực sự không thể hiểu được cách bạn sẽ triển khai các kiến ​​trúc lớn hơn trong LISP bằng cách sử dụng CLOS.

Vì vậy, tôi yêu cầu các bạn cho khoảng 20-50 trang đọc về CLOS áp dụng cho các kiến ​​trúc lớn hơn các ví dụ đơn giản. Có thể là một vài blogpost hoặc thậm chí là trải nghiệm!

TY

+1

Bạn có thể đưa ra ví dụ về kiến ​​trúc không? CLOS là khá nhiều superset của hệ thống đối tượng Java, vì vậy tôi không chắc chắn kiến ​​trúc mà bạn có trong tâm trí ... – Jules

Trả lời

4

Có lẽ hãy xem các ứng dụng mẫu được đi qua trong các chương sau. Bạn sẽ thấy rằng các lớp và đối tượng chỉ là một công cụ khác trong hộp của bạn. Chống lại sự thôi thúc lập trình Java với cú pháp Lisp.

Một nơi khác để xem xét là Successful Lisp, chương 7 và 14 cho những điều cơ bản và chương 31 và một phần của 3.10 là về gói và xử lý các dự án lớn.

Một số guru Lisp (có thể là Paul Graham, nhưng tôi không chắc chắn) đã từng nói rằng anh chưa cần đến CLOS.

chỉnh sửa: Tôi nghĩ rằng sự nhầm lẫn của bạn có thể xuất phát từ thực tế là trong Lisp, bạn không sử dụng hệ thống lớp để tổ chức không gian tên. Điều này được thực hiện riêng; cả hai không thực sự có liên quan gì đến nhau.

+0

Trong trường hợp của pg, đó là bởi vì anh ta thay vì viết phiên bản riêng của mình bị hỏng để thay thế.Gần như tất cả mọi thứ trong thế giới Lisp là một đối tượng - CLOS là một công cụ tốt để biết. – jrockway

+2

jrockway, bạn đã đọc mã nguồn của Paul chưa? – Svante

+0

Trên thực tế, hyperspec định nghĩa "đối tượng" là "bất kỳ trường dữ liệu Lisp nào": http://www.lispworks.com/documentation/lw50/CLHS/Body/26_glo_o.htm – Ken

7

Nếu bạn muốn giữ quyển sách, "Lập trình hướng đối tượng trong COMMON LISP" của Sonja E. Keene, Chương 11 (Phát triển chương trình nâng cao CLOS: Luồng) chứa một ví dụ không tầm thường với nhiều thừa kế kéo dài khoảng 40 trang.

Tám lớp được thảo luận chi tiết (luồng, luồng đầu vào, luồng đầu ra, luồng hai chiều, luồng ký tự, luồng byte, luồng đĩa và luồng băng). Các lớp bê tông mà người dùng sẽ được dự kiến ​​tạo ra các cá thể sau đó được bắt nguồn bằng cách sử dụng nhiều thừa kế.

Nó còn đáng kể hơn ví dụ về tài khoản ngân hàng trong Thực tiễn chung Lisp. Bạn cũng có thể tìm thấy phần còn lại của cuốn sách Keene hữu ích trong việc tìm hiểu sâu hơn về CLOS: toàn bộ cuốn sách là về CLOS.

+0

Cuốn sách của Keene cung cấp chính xác những gì OP này đang tìm kiếm. –

+0

Sonya (đã, cô ấy đã về hưu) một trong những nhà văn kỹ thuật tốt nhất từ ​​trước tới nay. Cuốn sách của cô ấy rất rõ ràng và đã được những người sáng tạo của CLOS xem xét kỹ lưỡng. –

5

Nếu bạn thực sự muốn hiểu CLOS, bạn có thể quay lại và đọc The Art of the Meta Object Protocol, cung cấp cơ sở và mã cơ bản cho Closette, phiên bản tập hợp con của CLOS.

+0

Cuốn sách này là tuyệt vời, nhưng là nhiều hơn về lý thuyết cơ bản và vẻ đẹp của CLOS hơn là về phát triển công việc thực tế. Tôi nghĩ rằng sau này là nhiều hơn những gì đang được yêu cầu ở đây. –

0

Bigger ứng dụng Clos là 1) CAPI từ Lispworks 2) cl-http webserver 3) một gói Clos rất lớn là CLIM 4) nếu bạn thích OpenGenera (đó là một hệ điều hành Lisp sử dụng Common Lisp và một số người tiền nhiệm ZetaLisp 5) một gói nhỏ hơn là http://www.cliki.net/mel-base

Trân Friedrich

2

Hiện tại Weblocks cũng sử dụng Clos nặng nề, vì vậy bạn có thể muốn duyệt nguồn một chút.

Các vấn đề liên quan