Article View: pl.comp.lang.funkcyjne
Article #354Re: >>=
From: Paweł 'Pasza' Ostrowski
Date: Thu, 29 May 2003 11:24
Date: Thu, 29 May 2003 11:24
58 lines
2842 bytes
2842 bytes
Dnia Thu, 29 May 2003 09:09:14 +0000 (UTC), Tomasz Zielonka napisał(a): >> Monada: polimorficzny typ (czyli sparametryzowany innym typem), np >> .. > Dokładnie -> unarny konstruktor typu. ok :), to chcialem wyrazic >> Ważna jest chyba monada stanowa (koniecznie zobacz >> przykłady w obu źródłach które podałem), rozwiązuje ona >> problem stanu w programie funkcyjnym. > > Monady pozwalają opisać wiele "efektów", np. > - stan > - wyjątki (Maybe, IO, Either) > - niedeterminizm (choćby monada []) > - referencje mutowalne (IO, ST s) > - tablice mutowalne (IO, ST s) > - wejście / wyjście (IO) > - wątki (co ciekawe można wymodelować ograniczoną postać wątków w > czystym Haskellu, bez wsparcia środowiska wykonawczego) > - kontynuacje > - środowisko brrr - widze, ze to co zrozumialem to dopiero poczatek, troche nie docenilem problemu :), robi wrazenie >> .. >> środowiska nie można wyciągnąć w żaden sposób boza monadę, >> obliczenia na nim są zaszyte w kokretną definicję operatora >> >>=. > > W monadach IO i ST jest to konieczność, ale nie wszystkie monady są > abstrakcyjne i zabraniają dostępu do swojej reprezentacji. doszedlem do tego podczas pisania poprzedniego posta (na przykladzie Maybe) >> .. >> typu (M a) da wynik przejścia przez wszystkie obliczenia zawinięty >> w monadę M. > > To działa tylko przy prostszych monadach, takich jak monada stanu. > Spróbuj to rozumowanie zastosować do monady IO z wątkami lub choćby do > monady parsowania ;) ja mowilem ze sie nie znam :) >> 'Na chłopski rozum': złożenie wielu obliczeń w jedno duże >> obliczenie. > > Dobrze jest myśleć o monadach od strony inżynierii oprogramowania, jako > o sposobie konstruowania interfejsu biblioteki. > .. ok, chetnie to przemysle, dzieki -- Pasza pasza (at) zodiac.mimuw.edu.pl
Technical Details
Message-ID:
<bb4qm2$2nn$1@pasza.io.waw.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!mimuw.edu.pl!news.mimuw.edu.pl!not-for-mailReferences:
<bb47la$o6t$1@kenny.mimuw.edu.pl> <bb4b15$no1$1@pasza.io.waw.pl> <slrnbdbjhn.t42.t.zielonka@zodiac.mimuw.edu.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!mimuw.edu.pl!news.mimuw.edu.pl!not-for-mail From: Paweł 'Pasza' Ostrowski <pasza@acn.waw.pl> Newsgroups: pl.comp.lang.funkcyjne Subject: Re: >>= Date: Thu, 29 May 2003 11:24:50 +0000 (UTC) Organization: independent Lines: 58 Message-ID: <bb4qm2$2nn$1@pasza.io.waw.pl> References: <bb47la$o6t$1@kenny.mimuw.edu.pl> <bb4b15$no1$1@pasza.io.waw.pl> <slrnbdbjhn.t42.t.zielonka@zodiac.mimuw.edu.pl> NNTP-Posting-Host: zodiac.mimuw.edu.pl Mime-Version: 1.0 X-Trace: kenny.mimuw.edu.pl 1054207456 16827 10.1.1.1 (29 May 2003 11:24:16 GMT) X-Complaints-To: abuse@news.mimuw.edu.pl NNTP-Posting-Date: Thu, 29 May 2003 11:24:16 +0000 (UTC) User-Agent: slrn/0.9.7.4 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit