Property Value
dbo:abstract
  • A számítógép-programozásban a monád a funkcionális paradigma tervmintája. Definiálja, hogyan használhatók együtt függvények, akciók, be- és kimenetek ahhoz, hogy generikus típust építsenek fel. Szerkezete a következő: * Adattípust definiál, és megadja, hogyan kombinálhatók ennek értékei. * Függvényeket hoz létre, amelyek használják a megadott adattípust, és akciókba csoportosítja őket, az első pont szabályai szerint. A monád tartalmazhatja a benne definiált adattípus értékeit, a hozzá tartozó specifikus számításokkal, amelyek tipikusan a típus speciális eseteit kezelik. Például a Maybe monád változókat burkol, amiknek lehet null értékük, vagy opcionális típust reprezentálnak, és automatikusan biztosítja, hogy ne adódjanak át null értékek olyan függvényeknek, amelyek nem tudják őket kezelni. Ezzel alternatívát ad a hagyományos kivételkezeléssel (throw-catch) szemben. Egy másik példa a List monád, ahol az üres lista a monádban megadott konstans, és a cons operátor fejelemként hozzáfűz a listához egy elemet. A monád a számításokat szekvenciális szerkezetben írja le; a monád határozza meg, hogy mi történik az utasítások összekapcsolásakor. Ez lehetővé teszi csővezetékek építését, amelyek lépések (akciók) sorozatával dolgoznak fel adatokat, ahol minden akciót dekorálnak a monád által definiált további feldolgozási szabályokkal. A monád kötelezően definiál két operátort, a return és a bind operátorokat. A return operátor létrehoz értékeket, a bind operátor kapcsolja össze az akciókat, ez utóbbit kísérik a monád törvények, amelyek szükségesek ahhoz, hogy a bind operátor általi összekapcsolás megfelelően működjön. A monádok lehetővé tesznek egy olyan programozási stílust, amiben a programokat jól komponálható részekből hozzák létre, rugalmasan komponálva a lehetséges akciókat, amik egy adott adattípuson működnek. Emiatt a monádokat programozható pontosvesszőnek is nevezik. Több programozási nyelvben pontosvessző operátor kapcsol össze utasításokat. A monád hasonlítható futószalaghoz is, ami az egyes lépések között szállítja az adatokat. Tisztán funkcionális programok használhatnak monádokat arra, hogy szekvenciális eljárásokat építsenek fel, az imperatív-strukturált programozási paradigmákhoz hasonlóan. Sok ismert programozási fogalom leírható monádokkal anélkül, hogy rontanák az átláthatóságot, például a mellékhatások, mint az írás-olvasás, értékadás, kivételkezelés, parszolás, nemdeterminisztikusság, konkurrencia, folytatások, vagy tartományspecifikus nyelvek. Monádokkal mindezek definiálhatók tisztán funkcionális módon, anélkül, hogy ezzel ki kellene terjeszteni a nyelv szemantikáját. Funkcionális programozási nyelvek, mint a Haskell szabványosan tartalmazzák a monádokat, ami lehetővé teszi, hogy a programozók újrahasználják formális definíciók hosszabb szakaszait, és több különböző könyvtárban használják újra ugyanazokat az interfészeket függvények kombinálására. A fogalom és elnevezése a kategóriaelméletből származik, ahol a monádok a funktorok speciális fajtája, leképezések kategóriák között. A funkcionális programozásban a kategóriaelmélet erős monádjai jelennek meg. Cikkünkben a monádokat a Haskellen keresztül mutatjuk be, egyéb programnyelvi terminológiát, ötleteket és példákat is fogadunk. (hu)
  • A számítógép-programozásban a monád a funkcionális paradigma tervmintája. Definiálja, hogyan használhatók együtt függvények, akciók, be- és kimenetek ahhoz, hogy generikus típust építsenek fel. Szerkezete a következő: * Adattípust definiál, és megadja, hogyan kombinálhatók ennek értékei. * Függvényeket hoz létre, amelyek használják a megadott adattípust, és akciókba csoportosítja őket, az első pont szabályai szerint. A monád tartalmazhatja a benne definiált adattípus értékeit, a hozzá tartozó specifikus számításokkal, amelyek tipikusan a típus speciális eseteit kezelik. Például a Maybe monád változókat burkol, amiknek lehet null értékük, vagy opcionális típust reprezentálnak, és automatikusan biztosítja, hogy ne adódjanak át null értékek olyan függvényeknek, amelyek nem tudják őket kezelni. Ezzel alternatívát ad a hagyományos kivételkezeléssel (throw-catch) szemben. Egy másik példa a List monád, ahol az üres lista a monádban megadott konstans, és a cons operátor fejelemként hozzáfűz a listához egy elemet. A monád a számításokat szekvenciális szerkezetben írja le; a monád határozza meg, hogy mi történik az utasítások összekapcsolásakor. Ez lehetővé teszi csővezetékek építését, amelyek lépések (akciók) sorozatával dolgoznak fel adatokat, ahol minden akciót dekorálnak a monád által definiált további feldolgozási szabályokkal. A monád kötelezően definiál két operátort, a return és a bind operátorokat. A return operátor létrehoz értékeket, a bind operátor kapcsolja össze az akciókat, ez utóbbit kísérik a monád törvények, amelyek szükségesek ahhoz, hogy a bind operátor általi összekapcsolás megfelelően működjön. A monádok lehetővé tesznek egy olyan programozási stílust, amiben a programokat jól komponálható részekből hozzák létre, rugalmasan komponálva a lehetséges akciókat, amik egy adott adattípuson működnek. Emiatt a monádokat programozható pontosvesszőnek is nevezik. Több programozási nyelvben pontosvessző operátor kapcsol össze utasításokat. A monád hasonlítható futószalaghoz is, ami az egyes lépések között szállítja az adatokat. Tisztán funkcionális programok használhatnak monádokat arra, hogy szekvenciális eljárásokat építsenek fel, az imperatív-strukturált programozási paradigmákhoz hasonlóan. Sok ismert programozási fogalom leírható monádokkal anélkül, hogy rontanák az átláthatóságot, például a mellékhatások, mint az írás-olvasás, értékadás, kivételkezelés, parszolás, nemdeterminisztikusság, konkurrencia, folytatások, vagy tartományspecifikus nyelvek. Monádokkal mindezek definiálhatók tisztán funkcionális módon, anélkül, hogy ezzel ki kellene terjeszteni a nyelv szemantikáját. Funkcionális programozási nyelvek, mint a Haskell szabványosan tartalmazzák a monádokat, ami lehetővé teszi, hogy a programozók újrahasználják formális definíciók hosszabb szakaszait, és több különböző könyvtárban használják újra ugyanazokat az interfészeket függvények kombinálására. A fogalom és elnevezése a kategóriaelméletből származik, ahol a monádok a funktorok speciális fajtája, leképezések kategóriák között. A funkcionális programozásban a kategóriaelmélet erős monádjai jelennek meg. Cikkünkben a monádokat a Haskellen keresztül mutatjuk be, egyéb programnyelvi terminológiát, ötleteket és példákat is fogadunk. (hu)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 1513163 (xsd:integer)
dbo:wikiPageLength
  • 53017 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 23872484 (xsd:integer)
prop-hu:wikiPageUsesTemplate
dct:subject
rdfs:label
  • Monád (funkcionális programozás) (hu)
  • Monád (funkcionális programozás) (hu)
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageRedirects of
is foaf:primaryTopic of