Không, bạn không cần chọn một cuốn sách về lý thuyết thể loại để hiểu Haskell.
Tôi đã sử dụng Haskell trong một vài năm và chọn một số lý thuyết thể loại vì tò mò, điều đó thực sự không cần thiết. Một mặt, thật tuyệt khi thấy tất cả những điều trừu tượng này phù hợp với "bức tranh lớn", nhưng tôi đã không đi "Ôi trời ơi, tôi chỉ cần biến điều này thành một trình bày từ Maybe
danh mục sang []
s và sau đó tôi có thể lưu công chúa!".
Bây giờ tùy thuộc vào những gì bạn đang làm với lý thuyết loại Haskell là trên hàng rào.
Nếu bạn chỉ đang học, đừng cố gắng hiểu mọi sắc thái của hệ thống . Xin đừng, nó giống như cố gắng học lập trình meta mẫu C ++ trước tiên. Các loại ưa thích là các công cụ tuyệt vời, nhưng có một sự hiểu biết tốt về nhịp lập trình chức năng hiểu được tính đa hình bắt buộc.
Bây giờ, hãy nói sau một hoặc hai năm của Haskell, bạn đang muốn tìm hiểu từng phần tinh tế về cách hệ thống loại của Haskell hoạt động, thì vâng, một số lý thuyết loại có thể hữu ích.
Nó sẽ giúp bạn hiểu một số logic đằng sau cách mọi thứ hoạt động, cộng với đó thực sự là một nhánh thực sự tuyệt vời của khoa học máy tính IMO đáng để xem xét. Bạn có thể chọn những phần bạn quan tâm và vẫn học được một lượng kha khá.
Đối với Haskell, xem xét các hệ thống loại STLC, HM (Hệ thống F) và có lẽ khối lambda (Haskell là Hệ thống Fw iirc) và các loại đệ quy. Các loại và ngôn ngữ lập trình là một tài nguyên tuyệt vời để bắt đầu và bao gồm tất cả những thứ này và nhiều hơn nữa.
Nếu bạn thực sự muốn uống đồ uống mát lạnh và khám phá bạn là một nhà lý thuyết kiểu vừa chớm nở, hãy đến Agda hoặc Coq. Những tính năng này "loại phụ thuộc", một bước xa hơn trong khối lambda so với Haskell. Các loại phụ thuộc cho các loại phụ thuộc vào các điều khoản. Điều này có nghĩa là các loại đủ mạnh để thực sự chứng minh các định lý. Đối với những người tò mò, googling "cà ri howard đẳng cấu" sẽ mang lại một số kết quả thú vị.