Tidak, Anda tidak perlu mengambil buku tentang teori kategori untuk memahami Haskell.
Saya telah menggunakan Haskell selama beberapa tahun, dan mengambil beberapa teori kategori karena penasaran, itu benar-benar tidak perlu. Di satu sisi, itu keren untuk melihat bagaimana semua abstraksi ini cocok dengan "gambaran besar", tetapi saya tidak pergi "Ya ampun, saya hanya perlu membuat ini menjadi pencuri dari Maybe
kategori ke []
s dan kemudian saya dapat menyimpan putri!".
Sekarang tergantung pada apa yang Anda lakukan dengan teori tipe Haskell di pagar.
Jika Anda baru belajar haskell, jangan mencoba memahami setiap nuansa dari sistem tipe . Tolong jangan, ini seperti mencoba mempelajari C ++ template meta-programming terlebih dahulu. Jenis mewah adalah alat yang sangat baik, tetapi memiliki pemahaman yang baik tentang pemrograman fungsional mengalahkan pemahaman polimorfisme impredikatif.
Sekarang katakanlah setelah satu atau dua tahun Haskell Anda mencari untuk memahami setiap bagian halus tentang bagaimana sistem tipe Haskell bekerja, maka ya, beberapa teori jenis mungkin membantu.
Ini akan membantu Anda memahami beberapa logika di balik bagaimana hal-hal bekerja, plus itu terus terang cabang ilmu komputer IMO yang sangat layak untuk dilihat. Anda dapat memilih bagian-bagian yang Anda minati dan masih belajar jumlah yang layak.
Untuk Haskell, melihat STLC, sistem tipe HM (Sistem F) dan mungkin lambda cube (Haskell adalah Sistem Fw iirc) dan tipe iso-rekursif. Jenis dan Bahasa pemrograman adalah sumber yang bagus untuk memulai dan mencakup semua ini dan banyak lagi.
Jika Anda benar-benar ingin meminum bantuan dingin dan mengetahui bahwa Anda adalah ahli teori tipe pemula, pergilah ke Agda atau Coq. Ini fitur "tipe tergantung", satu langkah lebih jauh di dalam kubus lambda daripada Haskell. Tipe tergantung membiarkan tipe tergantung pada persyaratan. Ini berarti jenisnya cukup kuat untuk benar-benar membuktikan teorema. Bagi yang penasaran, "kari isardisme kari" googling "harus memunculkan beberapa hasil menarik.