Ali so vse monade monoidi?
Ali so vse monade monoidi?

Video: Ali so vse monade monoidi?

Video: Ali so vse monade monoidi?
Video: P!nk - So What cover by Ai Mori/ ASTAFY 2024, November
Anonim

Dobro izrečen, morda najkrajši odgovor doslej je: A monada je samo a monoid v kategoriji endofunktorjev. Zadovoljen monoid aksiomi (i. & ii.), a monada je mogoče videti kot a monoid ki je endofunktor skupaj z dvema naravnima transformacijama.

Kaj je endofunktor Monade?

V teoriji kategorij, veja matematike, a monada (tudi trojna, triada, standardna konstrukcija in temeljna konstrukcija) je an endofunktor (funktor, ki preslika kategorijo na sebe), skupaj z dvema naravnima transformacijama, potrebnima za izpolnitev določenih pogojev skladnosti.

Kasneje se postavlja vprašanje, kaj je bifunktor? A bifunktor (znan tudi kot binarni funktor) je funktor, katerega domena je kategorija izdelka. Lahko ga vidimo kot funktor v dveh argumentih. Funktor Hom je naraven primer; je v enem argumentu kontravariantno, v drugem kovariantno. Multifunktor je posplošitev koncepta funktorja na n spremenljivk.

Kaj je torej Monad v programiranju?

Iz wikipedije: V funkciji programiranje , a monada je neke vrste abstraktni podatkovni tip, ki se uporablja za predstavljanje izračunov (namesto podatkov v modelu domene). Monade dovolite programer združiti akcije, da bi zgradili cevovod, v katerem je vsako dejanje okrašeno z dodatnimi pravili obdelave, ki jih zagotavlja monada.

Kaj je Monad Haskell?

V Haskell a monada je predstavljen kot konstruktor tipa (pokličite ga m), funkcija, ki gradi vrednosti te vrste (a -> ma), in funkcija, ki združuje vrednosti tega tipa z izračuni, ki proizvajajo vrednosti tega tipa, da ustvarijo nov izračun za vrednosti te vrste (ma -> (a -> mb) -> mb).

Priporočena: