Article View: pl.comp.lang.funkcyjne
Article #187Re: leniwosc jezyka
From: Lucifer
Date: Sat, 18 Jan 2003 15:33
Date: Sat, 18 Jan 2003 15:33
49 lines
2915 bytes
2915 bytes
Michal Przybylek wrote: > "Lucifer" <przemek@nospam.pa55.bytom.sdi.tpnet.pl> wrote: > >>Na czym polega leniwosc jezyka (np: w Haskellu)? > > Leniwosc polega na tym, ze dana czynnosc jest wykonywana dopiero wtedy, > kiedy jej wykonanie jest niezbedne. Czyli odkladanie zadan jak dlugo to mozliwe? > Leniwosc jezyka odnosi sie najczesciej do leniwego obliczania wyrazen. Przy > czym wazna jej cecha jest to, ze wykonuje zawsze conajwyzej tyle samo > obiczen co gorliwe podejscie (pomijajac stala). Najprosciej leniwosc wyrazen Czyli leniwe podejscie moze byc co najwyzej tak samo zlozone(powolne) co gorliwe? > mozna sobie wyobrazic przez otagowana wartosc, bedaca, albo thunk'iem z > kodem do wykonania, albo wynikiem, otrzymanym z wykonania tego kodu > (porownaj np. leniwe przekazywanie [call-by-need], z przkazaywaniem przez > nazwe [cal-by-name ; jak bylo np. w starym Algol'u]). Przypuscmy, ze jestem funkcja :) i zalkladam ze jest tak jak piszesz i dochodze do wniosku, ze musze zbadac, czy otrzymany argument jest tym co chce czy jest thunkiem - wtedy musze go uruchomic. Ok, co w takim razie znaczy IO w deklaracjach funkcji? Powyzsze jakos nie bardzo pasuje do we/wy (co zauwazylem). IO zapobiega leniwosci? > Leniwe podejscicie umozliwia troche inne spojrzenie na konstrukcje > programow. Jest jakgdyby rozciagniecieciem rekurencji na dane inne niz > funkcje i uogulnieniem jej przy pracy z funkcjami, przez co doskonale > wpasowuje sie do wiadomego stylu programowania [zreszta, nie do konca...]. Mozna jakis przyklad? > Oczywiscie leniwosc ma sens tylko w jezykach czystych. Tzn? Czym sa czyste jezyki? >>Wydaje mi sie, ze Haskell potrafi samodzielnie 'dochodzic' do tego o co >>tak naprawde programiscie chodzi - czyli zbyt wiele mi sie nie wydaje ;) > > Ta forma jest niepoprawna. Wiesz dlaczego. Nie wiesz, ze my tez wiemy. Wiem, sam wlasciwie nie wiem o co mi chodzilo. -- Lucifer
Technical Details
Message-ID:
<b0bs67$4tl$1@news.tpi.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!news.tpi.pl!not-for-mailReferences:
<b0a9ea$aum$1@news.tpi.pl> <b0bifd$on$1@news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!news.tpi.pl!not-for-mail From: Lucifer <przemek@nospam.pa55.bytom.sdi.tpnet.pl> Newsgroups: pl.comp.lang.funkcyjne Subject: Re: leniwosc jezyka Date: Sat, 18 Jan 2003 16:33:47 +0100 Organization: tp.internet - http://www.tpi.pl/ Lines: 50 Message-ID: <b0bs67$4tl$1@news.tpi.pl> References: <b0a9ea$aum$1@news.tpi.pl> <b0bifd$on$1@news.tpi.pl> NNTP-Posting-Host: tl206.internetdsl.tpnet.pl Mime-Version: 1.0 X-Trace: news.tpi.pl 1042904072 5045 80.55.115.206 (18 Jan 2003 15:34:32 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Sat, 18 Jan 2003 15:34:32 +0000 (UTC) In-Reply-To: <b0bifd$on$1@news.tpi.pl> X-Accept-Language: pl, en User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021226 Debian/1.2.1-9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit