Câu hỏi là hỏi về một khái niệm toán học trừu tượng (lý thuyết thể loại) trong khi hy vọng cho một câu trả lời rất thực tế (các ứng dụng cụ thể). Với tất cả sự tôn trọng, tôi nghĩ rằng đây là kỳ vọng không thực tế.
Các khái niệm toán học trừu tượng là một phần của các nguyên tắc cơ bản của ngôn ngữ lập trình, không phải ứng dụng. Ví dụ, các loại dữ liệu là trung tâm để lập trình. Mỗi ngôn ngữ có một số dạng dữ liệu và thực hiện một hệ thống loại - cho dù là tĩnh hay động, mạnh hay yếu, rõ ràng hay ẩn, v.v. Tuy nhiên, không có tiêu chuẩn nào.
Do đó, nhiều nhà khoa học máy tính đã cố gắng sử dụng lý thuyết thể loại để xác định một hệ thống loại thống nhất . Ví dụ, hãy xem Ngôn ngữ lập trình phân loại của Hagino (1987) và từ thiện (1996), sau đó ML (2003) và CAML, và Haskell , tất nhiên, định nghĩa một loại "Haskell" và các hàm Haskell là hình thái trên các loại ...
Đây là trường hợp bởi vì lý thuyết loại có liên quan chặt chẽ với lý thuyết thể loại . Để trích dẫn JL Bell: "Bản thân các danh mục có thể được xem là lý thuyết loại của một loại nào đó ... Vì vậy, lý thuyết loại có liên quan chặt chẽ hơn nhiều với lý thuyết thể loại so với lý thuyết ... Nói một cách đơn giản, một thể loại có thể được nghĩ đến như một lý thuyết kiểu loại bỏ cú pháp của nó. " Nó đã được chứng minh rằng, ví dụ, danh mục đóng Descartes tương ứng với đánh máy λ-calculus và C-monoids tương ứng với untyped λ-calculus ...
Tôi không nghĩ rằng lý thuyết danh mục là cần thiết cho bất kỳ loại lập trình nào, nhưng nó là một công cụ rất hữu ích trong việc thiết kế và thực hiện các ngôn ngữ lập trình, và đặc biệt. những cái vốn là toán học. Đó là lý do tại sao Lập trình chức năng thường được trích dẫn là một chương trình phân loại và tất cả các ngôn ngữ lập trình được đề cập ở trên là ngôn ngữ FP.
Một giới thiệu được đề xuất cho chủ đề này là " Hương vị của lý thuyết thể loại cho các nhà khoa học máy tính " của BC Pierce (1988). Thông tin này và thông tin hữu ích khác đã được tìm thấy trong một cuộc thảo luận tương tự trên mathoverflow .