Ciągle słyszę o tym, jak należy nauczyć się teorii kategorii, aby naprawdę zrozumieć teorię języka programowania. Do tej pory nauczyłem się sporo PL bez wchodzenia w sferę kategorii. Uznałem jednak, że nadszedł czas, aby zrobić krok, aby zobaczyć, co straciłem.
Niestety, żadne ze źródeł, które mogę znaleźć, nie wydają się tworzyć żadnych połączeń z systemami typu lub programowaniem. Mówią , że jest to wprowadzenie do teorii kategorii dla informatyków, ale potem przechodzą w ogólne abstrakcyjne bzdury (mówię to z miłością) bez podawania praktycznych przykładów lub zastosowań.
Wydaje mi się, że moje pytanie jest dwojakie:
- Czy teoria kategorii jest niezbędna do zrozumienia „głębokich pojęć” w PL?
- Jakie źródło wyjaśnia teorię kategorii z punktu widzenia praktycznych zastosowań systemów typu i programowania?
Jak dotąd najdalej posunąłem się do niejasnej koncepcji funktorów (które, jak mi się wydaje, nie są powiązane z funktorami w ML). Boję się abstrakcji, którą muszę zachować w głowie, aby zrozumieć monady z teoretycznego punktu widzenia.