3 điều tuyệt vời trong Lisp.
(black7375.tistory.com)Nhờ sự giới thiệu từ nhóm Racket,
giới thiệu những phần đã được triển khai tiên tiến trong các ngôn ngữ họ Lisp.
- Macro mạnh mẽ và an toàn nhất của Racket
1.1 Macro an toàn
- C vs Racket: vì sao macro phải là cú pháp
- Common Lisp vs Racket: vì sao macro phải mang tính vệ sinh
1.2 Macro mạnh mẽ
- Tổng quan về transform bằng đối tượng Syntax
- Làm việc với đối tượng Syntax và danh sách
- Thử trực tiếp transform bằngdefine-syntax
- Viết theo kiểu khai báo với macro pattern matching
- Compile-time và runtime khi định nghĩa macro
- Macro định nghĩa hàm hoặc biến - Dynamic binding đi cùng Thread của Racket
2.1 Dynamic binding là gì?
2.2 Vì sao là dynamic binding?
- Ngăn ô nhiễm toàn cục không cần thiết từ biến toàn cục
- Loại bỏ các tham số không cần thiết trong context
- Giảm boilerplate không cần thiết trong dependency injection
2.3 Dynamic binding an toàn với Thread - Hệ thống hướng đối tượng động và linh hoạt của Common Lisp
3.1 Nhiều cách triển khai hướng đối tượng
3.2 Hệ thống method linh hoạt
- Method có thể mở rộng mà không sửa định nghĩa class
- Multiple dispatch theo kiểu đối tượng
- Kết hợp method để kiểm soát cross-cutting concerns
3.3 Đối tượng động
3.4 MOP (Meta-Object Protocol) mở rộng hệ thống hướng đối tượng
- Bộ đếm thử kiểm soát trạng thái khi tạo
- Trình kiểm tra kiểu để thử mở rộng chức năng hiện có
- Thêm keyword vào định nghĩa class để thử kiểm chứng giá trị
3.5 Đa kế thừa
- Vấn đề đa kế thừa của C++
- Quy tắc CPL (Class Precedence List)
5 bình luận
Lúc học sau này nhất định phải đọc thử mới được!!
Cảm ơn!! haha
Tôi tò mò không biết điều gì đã khiến bạn bị cuốn hút bởi sức hấp dẫn của Racket giữa rất nhiều phương ngữ khác nhau!
Mình biết đến HtDP(How to Design Programs) khi đang học như một phiên bản dễ hơn của SICP.
Cú pháp rất gọn gàng và được thiết kế rất tốt.
Vì vậy mình bắt đầu quan tâm và tìm hiểu thêm thì thấy có nhiều điểm được thiết kế tốt hơn mình nghĩ..
Cảm ơn! Có cả cuốn sách như vậy nữa à.