[Kb. felfogva] Mi az a monád?

Fórumok

Sziasztok!

Megfogalmaznátok nekem közérthetően, hogy mi az a monád, milyen algebrai struktúrának feleltethető meg szemléletesen, milyen műveleteket definiálunk rajta, és miért lesz ettől szebb az életünk?

Wiki, Google, szakirodalom, eddig megkérdezett guruk szaktudása nem okosított ki.

szerk.: Funkcionális programozásról témakörről van szó.

Köszi!

Hozzászólások

Úgy rémlik, egységelemes félcsoport.

Ő lesz az én emberem, vele már találkoztam is, de nem értem.

A Just x / Nothing dolog a Maybe esetén teljesen érthető, viszont a műveletei teljesen sötétek, és ez az oldal is össze-vissza magyarázza.

Az odáig rendben van, hogy egy "absztrakt" algebrai struktúráról beszélünk, amin definiálunk két műveletet. Ezer irányba (kohézió nélkül) elkezdi magyarázni, és minden gondolatmenet vége az, hogy "és megváltottuk a világot, mert ennél egyszerűbb már semmi sem lehet".

Tudna valaki példát hozni ennek a funkcionális használatára? Mondjuk életszerűt.

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Jaunty
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

Ha a monoidra gondolsz, az egy egységelemes félcsoport (zárt, asszociatív, egységelemes, de nincs feltétlenül inverz)

zárt: bármely két eleme összeműveletezve (*) is a halmazhoz tartozik
asszociatív: átzárójelezhető, azaz a*(b*c) = (a*b)*c
egységelemes: létezik E úgy, hogy minden halmazbeli a-ra E*a = a

--
Ami elől menekülsz, az után szaladsz.

egy helyen hallottam ezt eddig: absztrakt algebranal (kategoriaelmelet, bevmat3 nalunk..).
arra gondolsz? vagy megis mire? :) legalabb matematikai agazatot mondj.

tessék, ékezettel írok, csak hogy megértsd. én a monádra gondoltam. kategóriaelméletben létezik.

a monoid más. miért írtam volna absztrakt algebrát meg kategóriaelméletet egy monoidhoz?...

mostmar normalisan irok;) a funkcionalis programozast mindig ruhelltem, ugyhogy erre most nem tolem kapsz valaszt.

akkor ezer bocsánat, megjegyzem, nem az ékezetek hiánya miatt értettelek félre. a kategóriaelmélet szón átsiklottam. :)

a bevmat miatt gondoltam, ami "nálatok" már tudtommal diszkrét matek címen fut, és már nincs belőle 3, csak 2. ;) ott jön elő "komolyabb" (értsd: nem valami komoly) szinten csoportelmélet, ebből következtettem. tévedtem. mea maxima culpa.

bár ettől függetlenül nem tudom, van-e konkrét összefüggés a kategóriaelméleti fogalom és az általam keresett struktúra között. ha van bevmat3 jegyzetből idevágó részed, linkelhetnél, hátha okosabbak leszünk.

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Jaunty
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

mi az hogy nalam? ;)
kikerestelek etrbe igy hirtelen, en hamarabb kezdtem, es progmatos vagyok.. es megvan a bevmat3, meg analszig... ;-)
ez van, oreg vagyok. :(

a kettonek nem sok koze van egymashoz, a funkcionalis programozasnal ez egy konstrukcio, mig a matekban.. najo, ott is. en oszinte leszek, sosem lattam ertelmet a funkcionalis programozasnak.

persze ezt hypeoljak mar 20 eve..

Sajnalatos. ilyenkor kit kene leszurni? a diakot vagy az oktatast? Elvegeztel egy csomo matekot es nem ertekeled/erted a FP szepseget, egyszeruseget es kifejezoerejet. Vagy csak nem volt egy jo kurzosod sem a temaban. Ha jol gondolom csak specikent lehet elvegezni ilyeneket az elte-n ugye?

zsolt

elte proginfón (ami progmat helyett van ugyebár) már kötelező félév haskell (funkc.prog címen) és aztán félév pp (párhuzamos programozás), de _sajnos_ semmi komoly.

az tényleg szomorú, hogy valaki "elvből rühelli", de ne csináljunk belőle flémet.

inkább mondjátok már meg, mi az a monád!!! :D

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Jaunty
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

senkit nemkell leszurni. az FP egy olyan dolog, amire lehet elvezni hogy dejo hogy van, meg minden, de a gyakorlati haszna statisztikai hiba szazalekaba esik.

majd ha az uzleti vilag atall Java EE -rol, akkor beszelhetunk rola, addig nem nagyon erdekel. de ha a Javat dobnam, akkor mar inkabb C#oznek.

Amit irsz eloszoris az nem igaz, nevezetesen az iparban nem kicsi a hasznalata.
Masreszrol ha latnad a tendenciat a nyevek fejlodeseben, lathatnad, hogy minden eredelileg imperativ vagy imperativ osoktol szarmazo nyelvet sorban terjesztik ki FP tulajdonsagokkal. nezd meg pl a MS! F#-et, stb, amiknek meg persze ido kell mig elterjed, de elobb utobb...
zsolt

20 eve ezt hypoljatok, hogy majd eljonnek a funkcionalis nyelvek. eljottek? nem. viragzik a Java EE, a C#.
en azt latom, hogy ezekbol meglehet elni, ellenben haskell programozot nem nagyon keresnek.

en mar kinottem abbol, hogy azert programozzak, mert "jee, milyen szep a nyelv, meg dejo!!".

csatlakoznom kell a kollégához, kedves NagyZ, ezúttal tévedsz.

nagyszerű ellenpélda az állításodra az erlang.

szerk.: azért az F# nem tisztán funkcionális nyelv. nem is olyan szép, ha már esztétikai dolgokról beszélünk. de nem azért jó, mert szép. inkább fordítva.

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Jaunty
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

hát... várd ki a végét. és szokj le arról, hogy csak PC-ben gondolkozol. :) azért a funkcionális programozás abban a formájában, ahogy most van még nagyon fiatalka, és sok mindenben már most okosabb és barátságosabb, mint "vetélytársai". nem arra találták ki, hogy pótoljon valami létezőt, hanem arra, hogy megvalósítson egy (pár) olyan dolgot, amit rajta kívül csak kemény absztrakciók (és kemény számítások) mellett lehet elérni. és meg kell hagyni: az eddigi eredményei nagyon is biztatóak.

ha jól sejtem, az átlagnál több közöd van az absztrakt matematikához, csodálkozom, hogy ilyen ellenszenvvel kezeled ezt az egészet. és sajnálom is. szerintem adj még egy esélyt neki. :)

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Jaunty
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

:D LoL. Nem fogja átvenni soha, nem is hivatott rá.

De oké, aláírom, közjegyző jelenlétében hitelesítem. Enni kell valamit. (Megjegyzem, és nem reklám: Morgan Stanley saját funkcionális nyelvet implementált magának, és nem is véletlenül. Van ennek jövője, múltja nincs.)

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Jaunty
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

Még annyit hozzá, hogy nagyon nagy előnye, hogy lényegében az egész program, amikor fut, egy függvénykompozíció. Amiről meg tudjuk jól, hogy asszociatív. Meg az általános asszociativitás törvényét is ismerjük. Párhuzamos programozásnál ez nem jön rosszul, nemdebár?

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Jaunty
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

úgy érettem. adj neki még egy esélyt, mint érdekesség. ;)

gyorsan és könnyen tanulható, úgyhogy, ha világuralomra törne, akkor is lesz időd vele elkezdeni komolyabb szinten foglalkozni.

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Jaunty
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

"mi az hogy nalam? ;)
kikerestelek etrbe igy hirtelen, en hamarabb kezdtem, es progmatos vagyok.. es megvan a bevmat3, meg analszig... ;-)
ez van, oreg vagyok. :("

ezért tettem idézőjelbe azt, hogy "nálatok". megjegyzem hál'istennek egyre kevesebb közöm van az ELTÉ-hez. de ezt majd egy másik topikban...

szerk.: mármint az ELTE-IK proginfóhoz van egyre kevesebb közöm.

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Jaunty
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

Konkrétan először a fogalommal a CEFP (Central European Functional Programming) konferencián találkoztam nyár elején. Elég sok előadás ért véget úgy, hogy "és látszik, hogy innen a problémakör visszavezethető a monádokra, tehát minden meg van oldva".

Senki nem tudott felvilágosítani azóta sem, és most megint előjött. Szeretném tudni, mi az.

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Jaunty
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

Szia!

En akkro ertettem meg amikor elolvastam a kitalalojanak eredeti cikket, remelem jot linkelek:
http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf

A lenyeg, hogy a monad egysegbezarja es axiomatizalja a "szekvencia" azaz mondhatnam a sorrendiseg fogalmat, ami termeszetesen siman es egyszeruen implementalhato lambda kalkulusban.
amint megjelenik az egymasutannisag, megjelenik a state, azaz allapot is(es megforditva is egyebkent). Igy ertheto tehat hogy a latszolagos allapotot haskellben pl, teljes egeszeben a monadra kepzodik le.

zsolt

én csak azt tudom, h mi a romonád, az ilyen félkör alakú támaszték a boltív építése közben. Biztos egy román illetőségű monád (no offense).

Tudom, mentem.

Hálám mindenkinek a konstruktív és kevésbé konstruktív hozzászólásokért! Előbbiektől némileg már bölcsebb lettem, ha kérdésem van, látom, kihez forduljak. Utóbbiakon meg jókat mosolyogtam/nevettem. :)

A Haskell lista == monád példáért különösen hálás vagyok xbit-nek, sokat segített a linkelt oldalak megértésében.

Szóval köszi!

Szerk.: Amire most kellett, arra ennyi már elég, sőt, a CEFP-es dolgok egy részének teljes megértéséhez egy kicsit mélyebbre kell ásnom, de most már van, amin elindulhatok.

[Megoldva.]

:: by BRI.
:: config :: Acer TravelMate // Ubuntu Jaunty
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog

Az alábbi megfejtések a legrégibb magyar álmoskönyvből valók:
Tyúkmonyad ha vagyon, kivált télen: nyereség. Tyúkmonyt tojni: apró gyermekeket nevelni. Tyúkmonyat enni: harag, hír.

Nem tudom érdekel-e még a téma, de az itt linkelt paper még hasznos lehet:
http://lambda-the-ultimate.org/node/3805

Amúgy érdemes az LtU-t böngészni, hihetetlen dolgokat találok néha.

-----------
"Generally, Russian technology assumes dumb machines and smart humans, not the other way around." -- The Russian Tea HOWTO