Sau khi học Haskell và các ngôn ngữ FP không thuần túy khác, tôi quyết định đọc về lý thuyết Danh mục. Sau khi hiểu rõ về lý thuyết Danh mục, tôi bắt đầu suy nghĩ về cách sử dụng các khái niệm của lý thuyết thể loại để suy nghĩ về việc thiết kế các chương trình nhưng cho dù tôi có cố gắng thế nào thì dường như đây không phải là hướng đi.
Sau khi dành nhiều nỗ lực không thành công để liên kết lý thuyết thể loại với thiết kế chương trình, tôi đã đi đến kết luận rằng:
- Lý thuyết danh mục rất hữu ích khi thiết kế một ngôn ngữ lập trình .
- Lý thuyết danh mục không phải là thứ bạn sử dụng khi thiết kế chương trình (ngay cả khi sử dụng ngôn ngữ được thiết kế dựa trên nguyên tắc danh mục). Ví dụ: Khi lập trình trong Haskell, bạn sẽ sử dụng các kiểu, kiểu hàm tạo, hàm, hàm bậc cao hơn v.v để thiết kế chương trình của bạn, không phải là khái niệm lý thuyết thể loại.
Tóm lại, chúng tôi có hệ thống lớp bên dưới (thứ tự từ thấp đến cao):
Lý thuyết danh mục -> Ngôn ngữ lập trình -> Chương trình
Tại một lớp cụ thể, bạn sử dụng các khái niệm của lớp bên dưới ngay lập tức .
Sự hiểu biết này có đúng không? Nếu không và bạn tin rằng trong việc thiết kế các chương trình, chúng ta có thể trực tiếp sử dụng các khái niệm lý thuyết thể loại, vui lòng tham khảo một số bài viết hoặc bài đăng trên blog nơi nó đang được trình bày.
LƯU Ý: Bằng cách thiết kế các chương trình, tôi có nghĩa là thiết kế các chương trình dựa trên các khái niệm khác nhau, như đồng thời, song song, phản ứng, truyền thông điệp, v.v.