Menjelaskan transformer monad dalam istilah kategorikal

8

Sebagian besar sumber daya mengenai pengertian kategoris dalam pemrograman menggambarkan monad, tetapi saya belum pernah melihat deskripsi kategorik dari monad transformer.

Bagaimana transformator monad dijelaskan dalam istilah teori kategori?

Secara khusus, saya akan tertarik pada:

  • hubungan antara trafo monad dan pangkalan monadanya;
  • hubungan antara mereka dan monad yang mereka ubah menjadi monad baru;
  • tumpukan transformator monad.
Petr Pudlák
sumber

Jawaban:

8

Menurut Oleksandr Manzuk, mereka adalah "terjemahan dari monad di sepanjang pertemuan", lihat "Menghitung Transformer Monad dengan Teori Kategori" . Omong-omong, itulah hit ketiga di Google untuk "trafo monad dengan pasti". Yang pertama adalah pertanyaan Stackoverflow tentang ini dan yang kedua adalah pertanyaan Anda.

Andrej Bauer
sumber
7

Menambah jawaban Andrej:

Masih belum ada kesepakatan luas tentang antarmuka yang sesuai yang harus didukung oleh transformator monad dalam konteks pemrograman fungsional. MTL Haskell adalah antarmuka de-facto, tetapi Jaskelioff's Monatron adalah alternatif.

Salah satu laporan teknis sebelumnya oleh Moggi, pandangan abstrak dari bahasa pemrograman , membahas apa yang seharusnya menjadi gagasan transformator sampai batas tertentu (bagian 4.1). Secara khusus, ia membahas gagasan operasi untuk monad, yang ia (20 tahun kemudian) tinjau kembali dengan Jaskelioff dalam trafo monad sebagai trafo monoid .

(Gagasan operasi ini berbeda dari gagasan Plotkin dan Power tentang operasi aljabar untuk monad , yang sama dengan panah Kleisli.)

Ohad Kammar
sumber