Article View: pl.comp.lang.funkcyjne
Article #355Re: >>=
From: Tomasz Zielonka
Date: Thu, 29 May 2003 09:27
Date: Thu, 29 May 2003 09:27
47 lines
2707 bytes
2707 bytes
Marcin Gajda napisał:
> Witam!
>
> Już drugi dzień ślęczę w Haskellu nad monadami i nic - głowa boli coraz
> bardziej.
Hehe, wszystko się zgadza. Miałem to samo ;)
> Czy może ktoś z Was ma jakąś intuicję dotyczącą samego pojęcia monady
> jak i operatora >>=? Tak na chłopski rozum ;)
Monady są na tyle ogólnym mechanizmem, że można o nich myśleć na wiele
sposobów. Wyrobienie sobie skutecznej intuicji dla tak abstrakcyjnego
mechanizmu jest dosyć trudne. Trzeba uważać, żeby nie ograniczyć swojego
myślenia tylko do pewnych zastosowań monad.
Ja myślę o monadach jako o wzorcowym interfejsie biblioteki. Wiele
zastosowań monad można wyrazić w inny sposób, dać bibiotece inny
interfejs, ale stosując interfejs monad zyskuje się od razu całe mnóstwo
gotowych funkcji, możliwość skorzystania z doświadczenia, specjalną
składnię do ich składania (do), możliwość skorzystania z gotowych
bibliotek transformatorów monad, itp.
Wygodnie jest też myśleć o wartościach z danej monady jako o
obliczeniach z pewnymi cechami, np.
IO-obliczenia - obliczenia, które mogą wykonywać I/O, używać
referencji, tablic mutowalnych, wyjątków,
współbieżności, FFI, itp.
Maybe-obliczenia - obliczenia, które mogą nie dać wyniku
[]-obliczenia - obliczenia, które mogą dać wiele wyników
Parser-obliczenia - obliczenia, które mogą konsumować zadaną listę
wejściową, a także mogą zawieść
State-obliczenia - obliczenia z globalnym stanen, który
może być odczytywany i zapisywany
itd.
Mimo, że pojęcie monad pochodzi z teorii kategorii, można ich używać z
powodzeniem nie mając o teorii kategorii zielonego pojęcia, czego dobrym
przykładem jestem ja :)
> Z góry dzięki.
Pozdrawiam,
Tomek
--
.signature: Too many levels of symbolic links
Technical Details
Message-ID:
<slrnbdbkjb.t42.t.zielonka@zodiac.mimuw.edu.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>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: Tomasz Zielonka <t.zielonka@students.mimuw.edu.pl> Newsgroups: pl.comp.lang.funkcyjne Subject: Re: >>= Date: Thu, 29 May 2003 09:27:09 +0000 (UTC) Organization: MIMUW Lines: 47 Message-ID: <slrnbdbkjb.t42.t.zielonka@zodiac.mimuw.edu.pl> References: <bb47la$o6t$1@kenny.mimuw.edu.pl> Reply-To: t.zielonka@students.mimuw.edu.pl NNTP-Posting-Host: zodiac.mimuw.edu.pl Mime-Version: 1.0 X-Trace: kenny.mimuw.edu.pl 1054200429 32513 10.1.1.1 (29 May 2003 09:27:09 GMT) X-Complaints-To: abuse@news.mimuw.edu.pl NNTP-Posting-Date: Thu, 29 May 2003 09:27:09 +0000 (UTC) User-Agent: slrn/0.9.7.3 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit