Kas kõik monaadid on monoidid?
Kas kõik monaadid on monoidid?

Video: Kas kõik monaadid on monoidid?

Video: Kas kõik monaadid on monoidid?
Video: Java Multithreading : AtomicReference, ScheduledExecutorService и монада Either. Многопоточность. 2024, Detsember
Anonim

Hästi öeldud, võib-olla kõigi aegade lühim vastus on: A monaad on lihtsalt a monoidne endofunktsionaalsete ainete kategoorias. Rahul monoidne aksioomid (i. & ii.), a monaad võib vaadelda kui a monoidne mis on endofunktor koos kahe loomuliku transformatsiooniga.

Siin, mis on Monad Endofunctor?

Kategooriateoorias on matemaatika haru, a monaad (ka kolmik-, kolmik-, tüüpkonstruktsioon ja põhikonstruktsioon) on an endofunktor (Funktor, mis kaardistab kategooria iseendaga) koos kahe loomuliku teisendusega, mis on vajalikud teatud sidusustingimuste täitmiseks.

Seejärel tekib küsimus, mis on Bifunctor? A bifunktor (tuntud ka kui binaarne funktor) on funktor, mille domeeniks on tootekategooria. Seda võib vaadelda funktorina kahes argumendis. Hom funktor on loomulik näide; see on ühes argumendis kontravariantne, teises kovariantne. Multifunktsionäär on funktsionaalse kontseptsiooni üldistus n muutujale.

Mis on siis programmeerimises monaad?

Wikipediast: Funktsionaalselt programmeerimine , a monaad on teatud tüüpi abstraktne andmetüüp, mida kasutatakse arvutuste esitamiseks (domeenimudeli andmete asemel). Monaadid lubada programmeerija aheldada toiminguid kokku, et luua torujuhe, milles iga toimingut kaunistavad täiendavad töötlemisreeglid, mida pakuvad monaad.

Mis on Monad Haskell?

sisse Haskell a monaad on esitatud tüübikonstruktorina (nimetage seda m), funktsioonina, mis loob seda tüüpi väärtusi (a -> ma) ja funktsioonina, mis kombineerib seda tüüpi väärtusi arvutustega, mis toodavad seda tüüpi väärtusi, et luua uus arvutus seda tüüpi väärtused (ma -> (a -> mb) -> mb).

Soovitan: