🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.funkcyjne
Article #187

Re: leniwosc jezyka

#187
From: Lucifer
Date: Sat, 18 Jan 2003 15:33
49 lines
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-mail
References: <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