Я продолжаю слышать о том, как нужно изучать теорию категорий, чтобы действительно понять теорию языка программирования. До сих пор я выучил много PL, даже не ступая в царство категорий. Тем не менее, я подумал, что пришло время сделать прыжок, чтобы увидеть, что я пропустил.
К сожалению, ни один из источников, которые я могу найти, кажется, не связан с системами типов или программированием. Они говорят, что это введение в теорию категорий для компьютерных ученых, но затем отклоняются от общей абстрактной чепухи (я говорю это с любовью), не приводя никаких практических примеров или приложений.
Я предполагаю, что мой вопрос на самом деле состоит из двух частей:
- Является ли теория категорий необходимой для понимания «глубоких концепций» в PL?
- Какой источник объясняет теорию категорий с точки зрения практического применения к системам типов и программированию?
До сих пор самое большее, что я получил, - это смутная концепция функторов (насколько я могу судить, они не имеют отношения к функторам в ML). Я боюсь абстракции, которую мне нужно держать в голове, чтобы понять монады с точки зрения теории категорий.