Setelah mempelajari Haskell dan bahasa FP lain yang tidak murni, saya memutuskan untuk membaca tentang teori Kategori. Setelah mendapatkan pemahaman yang baik tentang teori Kategori saya mulai berpikir tentang bagaimana konsep teori kategori dapat digunakan untuk berpikir tentang merancang program tetapi tidak peduli seberapa keras saya mencoba sepertinya ini bukan cara yang harus dilakukan.
Setelah menghabiskan banyak usaha yang gagal untuk menghubungkan teori kategori dengan merancang program, saya sampai pada kesimpulan bahwa:
- Teori kategori berguna ketika merancang bahasa pemrograman .
- Teori kategori bukanlah sesuatu yang Anda gunakan saat merancang program (bahkan ketika menggunakan bahasa yang dirancang berdasarkan prinsip-prinsip kategori). Sebagai contoh: Ketika pemrograman di Haskell Anda akan menggunakan tipe, tipe konstruktor, fungsi, fungsi tingkat tinggi dll untuk merancang program Anda, bukan konsep teori kategori.
Singkatnya, kami memiliki sistem di bawah lapisan (urutan rendah ke tinggi):
Teori kategori -> Bahasa pemrograman -> Program
Pada lapisan tertentu Anda menggunakan konsep lapisan yang mendasari langsung .
Apakah pemahaman ini benar? Jika tidak dan Anda yakin bahwa dalam merancang program kami dapat langsung menggunakan konsep teori kategori, silakan merujuk beberapa artikel atau posting blog di mana itu sedang diperagakan.
CATATAN: Dengan merancang program, maksud saya merancang program berdasarkan pada konsep yang berbeda, seperti konkurensi, paralelisme, reaktif, pengiriman pesan, dll.