Mi az a monád programozás?

Pontszám: 4,4/5 ( 54 szavazat )

A funkcionális programozásban a monád egy absztrakció, amely lehetővé teszi a programok általános strukturálását. A támogató nyelvek monádokat használhatnak, hogy elvonják a programlogikához szükséges alapkódot.

Mi a monád leegyszerűsítve?

Tehát egyszerű szavakkal, a monád egy szabály, amely bármely X típusból átmegy egy másik T(X) típusba , és egy szabály, amely két f:X->T(Y) és g:Y->T(Z) függvényből lép át. ) (amelyet szeretne összeállítani, de nem tudja) egy új h:X->T(Z) függvényre. ... Alapvetően "hajlítjuk" a függvény összetételét, vagy újradefiniáljuk a függvények összeállítását.

Mi a monád példa?

Például az IO monádban x >>= y két műveletet hajt végre egymás után , és az első eredményét átadja a másodiknak. A többi beépített monád, listák és a Maybe típus esetében ezek a monádos műveletek úgy értelmezhetők, hogy nulla vagy több értéket adnak át egyik számításból a másikba.

Mi az a monád az OOP-ban?

Az OO programozás szempontjából a monád egy interfész (vagy inkább egy mixin), amelyet egy típus paraméterez, két metódussal, return és bind, amelyek leírják : Hogyan kell beadni egy értéket, hogy megkapjuk az adott beadott értéktípus monadikus értékét; Hogyan használjunk olyan függvényt, amely monád értéket hoz létre nem monádosból, monádi értéken.

Mi a monád az informatikában?

A monád egy algebrai struktúra a kategóriaelméletben , és a Haskellben a számítások lépéssorozatként történő leírására, valamint a mellékhatások, például az állapot és az IO kezelésére használják. A monádok absztraktak, és sok hasznos konkrét példájuk van. A monádok lehetőséget adnak a programok felépítésére.

Mi az a Monád? - Számítógépfil

25 kapcsolódó kérdés található

Miért hívják monádnak?

A Monád (a görög μονάς monas szóból, a "szingularitás" pedig a μόνος monosból, "egyedül") a kozmogóniában a Legfelsőbb Lényre, az istenségre vagy minden dolog összességére utal . A koncepciót állítólag a pitagoreusok alkották meg, és különféleképpen utalhat egyetlen, egyedül működő forrásra, vagy oszthatatlan eredetre, vagy mindkettőre.

Minden funktor monád?

Melyik kiegészítés teszi lehetővé, hogy egy adott funktort monádnak nevezzünk? Ha jól értem, minden monád funktor , de nem minden funktor monád. A funktor egy tiszta függvényt (és egy funkcionális értéket) vesz fel, míg a monád egy Kleisli nyilat, azaz egy függvényt, amely egy monádot (és egy monád értéket) ad vissza.

A monádok tiszták?

A monádokat nem tekintik tisztának vagy tisztátalannak . Ezek teljesen független fogalmak. A címed olyan, mintha azt kérdeznéd, hogyan tekintik az igéket finomnak. A "monád" egy adott kompozíciós mintára utal, amely bizonyos magasabb típusú konstruktorokkal megvalósítható típusokon.

A funkció monád?

Ezt néha függvénymonádnak is nevezik. Mértékegységét úgy adjuk meg, hogy értékeket küldünk az adott értékkel rendelkező konstans függvényeknek, a monád műveletét pedig az átlón történő kiértékeléssel. Az informatika monádjaival összefüggésben ezt a monádot olvasó monádnak vagy környezeti monádnak nevezik.

A monádok alkalmazása?

Az applikatívumok becsomagolt függvényt alkalmaznak egy burkolt értékre : A Monadok olyan függvényt alkalmaznak, amely egy burkolt értéket ad vissza egy burkolt értékre. A monádoknak van egy >>= (ejtsd: "bind") funkciója ennek érdekében.

Hogyan működnek a funktorok?

A függvények olyan objektumok , amelyeket úgy lehet kezelni, mintha függvények vagy függvénymutatók lennének. A függvényeket leggyakrabban az STL-ekkel együtt használják a következő forgatókönyvekben: ... A funktor (vagy függvényobjektum) egy C++ osztály, amely függvényként működik. A függvények meghívása ugyanazzal a régi függvényhívás szintaxissal történik.

A monád egy kategória?

A kategóriaelméletben a matematika egyik ága, a monád (háromszoros, hármas, szabványos konstrukció és fundamentális konstrukció is) egy endofunctor (egy kategóriát önmagára leképező függvény), két természetes transzformációval együtt, amelyek bizonyos koherenciafeltételek teljesítéséhez szükségesek.

Mik a monád törvényei?

A három monádtörvény a következő:
  • 1. törvény: return x >>= f ugyanúgy viselkedik, mint fx.
  • 2. törvény: m >>= return ugyanúgy viselkedik, mint m .
  • 3. törvény: (m >>= f) >>= g ugyanúgy viselkedik, mint m >>= (fun x -> fx >>= g) .

Hányféle monád létezik?

Giordano Bruno a De monade, numero et figura liber (1591; „A monádról, számról és alakról”) című művében három alapvető típust írt le: Istent, lelkeket és atomokat. A monádok gondolatát Gottfried Wilhelm Leibniz népszerűsítette a Monadologiában (1714).

Milyen problémát old meg a monád?

A Monad egy egyszerű és hatékony tervezési minta a funkciók összeállításához, amely segít megoldani a nagyon gyakori informatikai problémákat, mint például a bemenet/kimenet, a kivételkezelés, az elemzés, a párhuzamosság és egyéb .

Miért fontosak a monádok?

A monádok csak egy kényelmes keretet biztosítanak a visszatérő problémák egy osztályának megoldásához . Először is, a monádoknak funktoroknak kell lenniük (azaz támogatniuk kell a leképezést anélkül, hogy az elemeket (vagy azok típusát) megnéznénk, hozniuk kell egy kötési (vagy láncolási) műveletet és módot arra, hogy egy elemtípusból monád értéket hozzunk létre ( return ).

Minden monád monoid?

Következtetés. Összefoglalva, minden monád definíció szerint endofunktor , tehát az endofunktorok kategóriájába tartozó objektum, ahol a monád csatlakozási és visszatérési operátorok megfelelnek a monoid definíciójának az adott (szigorú) monoid kategóriában.

Opcionális A monád?

Az opcionális önmagában monádnak minősül , annak ellenére, hogy a Java 8 könyvtári csapat némi ellenállást tanúsít.

A monádok összeállíthatók?

Ha csak m -effektusokat akarsz n -effektekkel összefűzni, akkor a kompozíciót talán túl sok kérni! Az aplikatívák alkotnak, a monádok nem. A monádok alkotnak , de lehet, hogy az eredmény nem monád. Ezzel szemben két aplikatívum összetétele szükségképpen aplikatíva.

Ki találta fel a monádokat?

Roger Godement matematikus volt az első, aki az 1950-es évek végén fogalmazta meg a monád fogalmát (ezt "szabványos konstrukciónak" nevezte), bár az uralkodóvá vált "monád" kifejezést Saunders Mac Lane, a kategóriaelmélet híve népszerűsítette.

A tuple monád?

Egy dologra figyeltem fel, hogy a Tuple-nek nincs Monad példánya . Ami már amúgy is rendkívül erősen korlátozza azt, hogy mivé tehetjük a Monad példányt.

Mi az a monád C#?

C# kifejezéssel a Monad egy általános osztály, két művelettel: constructor és bind . class Monád<T> { Monád(T példány); Monad<U> Bind(Func<T, Monad<U>> f); } A Constructor egy objektum tárolóba helyezésére szolgál, a Bind pedig arra, hogy egy benne lévő objektumot lecseréljen egy másik tárolt objektumra.

Az A lehetőség funkcionális?

A Functor egy típusosztály, amely absztrahál a leképezhető típuskonstruktorok felett. Ilyen típusú konstruktorok például a List , Option és a Future .

Mi a különbség a monád és a monoid között?

2 válasz. A monádok az endofunktorok kategóriájába tartozó monoidok. Ezért a monád csak egy példa a monoidra, ami egy általánosabb fogalom.

A listák monádok?

Szigorúan véve a „Lista egy monád” enyhe visszaélés a terminológiával . Ez a List rövidítése a függvényekkel együtt (xs: Lista[A], f: A => Lista[A]) => xs. térkép(f). flatten (ami f0 ) és (x: A) => List(x) (ami f1 -et alkot) monádot alkot.