Is alle monaden monooïdes?
Is alle monaden monooïdes?

Video: Is alle monaden monooïdes?

Video: Is alle monaden monooïdes?
Video: Levin Λ Friston Λ Fields: "Meta" Hard Problem of Consciousness 2024, November
Anonim

'n Goed-gesê, miskien die kortste antwoord ooit is: A monade is net 'n monooïed in die kategorie van endofunctors. Tevrede die monooïed aksiomas (i. & ii.), a monade kan gesien word as 'n monooïed wat 'n endofunktor is saam met twee natuurlike transformasies.

Hierin, wat is 'n Monad Endofunctor?

In kategorie teorie, 'n tak van wiskunde, a monade (ook drievoudig, drieklank, standaardkonstruksie en fundamentele konstruksie) is 'n endofunktor ('n funktor wat 'n kategorie aan homself karteer), tesame met twee natuurlike transformasies wat nodig is om aan sekere samehangsvoorwaardes te voldoen.

Die vraag is dan, wat is 'n Bifunctor? A bifunktor (ook bekend as 'n binêre funktor) is 'n funktor wie se domein 'n produkkategorie is. Dit kan gesien word as 'n funktor in twee argumente. Die Hom-funktor is 'n natuurlike voorbeeld; dit is teenstrydig in een argument, kovariant in die ander. 'n Multifunktor is 'n veralgemening van die funktorkonsep na n veranderlikes.

Dan, wat is 'n monade in programmering?

Van wikipedia: In funksioneel Programmering , a monade is 'n soort abstrakte datatipe wat gebruik word om berekeninge voor te stel (in plaas van data in die domeinmodel). Monades laat die toe programmeerder om aksies saam te ketting om 'n pyplyn te bou, waarin elke aksie versier is met bykomende verwerkingsreëls wat deur die monade.

Wat is 'n Monad Haskell?

In Haskell a monade word voorgestel as 'n tipe konstruktor (noem dit m), 'n funksie wat waardes van daardie tipe bou (a -> ma), en 'n funksie wat waardes van daardie tipe kombineer met berekenings wat waardes van daardie tipe produseer om 'n nuwe berekening vir waardes van daardie tipe (ma -> (a -> mb) -> mb).

Aanbeveel: