Dopo aver appreso Haskell e altri linguaggi FP non altrettanto puri, ho deciso di leggere la teoria delle categorie. Dopo aver acquisito una buona conoscenza della teoria delle categorie, ho iniziato a pensare a come i concetti della teoria delle categorie possano essere usati per pensare alla progettazione di programmi, ma non importa quanto ci abbia provato, sembra che questa non sia la strada da percorrere.
Dopo aver speso molti tentativi falliti di collegare la teoria delle categorie alla progettazione di programmi, sono giunto alla conclusione che:
- La teoria delle categorie è utile quando si progetta un linguaggio di programmazione .
- La teoria delle categorie non è qualcosa che usi durante la progettazione di programmi (anche quando usi un linguaggio progettato in base ai principi di categoria). Ad esempio: durante la programmazione in Haskell userete tipi, tipi costruttore, funzioni, funzioni di ordine superiore ecc. Per progettare il vostro programma, non concetti di teoria delle categorie.
In sintesi, abbiamo un sistema di livello inferiore (l'ordine va da basso ad alto):
Teoria delle categorie -> Linguaggio di programmazione -> Programma
In un particolare livello usi i concetti del livello sottostante immediato .
Questa comprensione è corretta? In caso contrario e ritieni che nella progettazione dei programmi possiamo utilizzare direttamente i concetti di teoria delle categorie, fai riferimento ad alcuni articoli o post di blog in cui viene dimostrato.
NOTA: Progettando programmi intendo progettare programmi basati su concetti diversi, come concorrenza, parallelismo, reattivo, passaggio di messaggi, ecc.