Barcha monadlar monoidlarmi?
Barcha monadlar monoidlarmi?

Video: Barcha monadlar monoidlarmi?

Video: Barcha monadlar monoidlarmi?
Video: Qaynona | 3-qism | Omar Xalil 2024, May
Anonim

Yaxshi aytilgan, ehtimol, eng qisqa javob: A monad shunchaki a monoid endofunktorlar toifasida. Qoniqarli monoid aksiomalar (i. va ii.), a monad a sifatida qarash mumkin monoid ikkita tabiiy transformatsiya bilan birga endofunktor hisoblanadi.

Mana, Monad Endofunctor nima?

Kategoriyalar nazariyasida matematikaning bir sohasi, a monad (shuningdek, uchlik, triada, standart konstruksiya va fundamental konstruksiya) an endofunktor (kategoriyani o'z-o'zidan ko'rsatadigan funktor), muayyan muvofiqlik shartlarini bajarish uchun zarur bo'lgan ikkita tabiiy o'zgarishlar bilan birga.

Keyinchalik savol tug'iladi: Bifunktor nima? A bifunktor (shuningdek, ikkilik funktor sifatida ham tanilgan) - domeni mahsulot toifasi bo'lgan funktor. Uni ikkita argumentda funktor sifatida ko'rish mumkin. Hom funktori tabiiy misoldir; u bir dalilda kontravariant, ikkinchisida kovariant. Ko'p funktsiyali funktor tushunchasining n ta o'zgaruvchiga umumlashtirilishi.

Xo'sh, dasturlashda Monad nima?

Vikipediyadan: Funktsional holatda dasturlash , a monad hisob-kitoblarni ifodalash uchun ishlatiladigan mavhum ma'lumotlar turidir (domen modelidagi ma'lumotlar o'rniga). Monadlar ruxsat berish dasturchi Har bir harakat tomonidan taqdim etilgan qo'shimcha ishlov berish qoidalari bilan bezatilgan quvur liniyasini qurish uchun harakatlarni birgalikda zanjirlash monad.

Monad Haskell nima?

In Haskell a monad tip konstruktori (uni m deb ataymiz), bu turdagi qiymatlarni yaratuvchi funksiya (a -> ma) va yangi hisob yaratish uchun shu turdagi qiymatlarni ishlab chiqaruvchi hisoblar bilan birlashtirgan funksiya sifatida ifodalanadi. bu turdagi qiymatlar (ma -> (a -> mb) -> mb).

Tavsiya: