Ich höre immer wieder, wie man Kategorietheorie lernen muss, um die Theorie der Programmiersprache wirklich zu verstehen. Bisher habe ich viel PL gelernt, ohne jemals in den Bereich der Kategorien einzusteigen. Ich nahm jedoch an, dass es Zeit war, den Sprung zu wagen, um zu sehen, was ich vermisst hatte.
Leider scheint keine der Quellen, die ich finden kann, irgendwelche Verbindungen zu Typsystemen oder zur Programmierung herzustellen. Sie sagen, es ist eine Einführung in die Kategorietheorie für Informatiker, aber dann in allgemeinen abstrakten Unsinn (das sage ich liebevoll), ohne praktische Beispiele oder Anwendungen zu nennen.
Ich denke, meine Frage hat zwei Gründe:
- Ist Kategorietheorie wesentlich für das Verständnis der "tiefen Konzepte" in PL?
- Was ist eine Quelle, die die Kategorietheorie unter dem Gesichtspunkt praktischer Anwendungen zu Typsystemen und Programmierung erklärt?
Bisher habe ich mich am weitesten mit einer vagen Vorstellung von Funktoren beschäftigt (die, soweit ich das beurteilen kann, nicht mit Funktoren in ML zu tun zu haben scheinen). Ich fürchte mich vor der Abstraktion, die ich im Kopf behalten muss, um Monaden aus kategorietheoretischer Sicht zu verstehen.