🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: leniwosc jezyka

#184
From: Krzysztof Parzyszek
Date: Sat, 18 Jan 2003 19:14
30 lines
1694 bytes
On Sat, 18 Jan 2003 13:02:24 +0100, Lucifer wrote:
> 
> Czyli haskell zmienia postac funkcji ktora ma zamiar zawolac?

Hmmm...  nie jestem pewien czy dobrze Cię rozumiem.
Jeśli masz np. funkcję foo

   foo x y = 2*y+1

to wyrażenie,

   foo (bar 234) 53

najpierw zostanie przepisane jako

   2*53+1

czyli 107.  Obeszło się bez obliczania wartości funkcji bar.  W przypadku
języków gorliwych bar 234 zostałoby policzone mimo, że nie jest to potrzebne.
Dodatkową cechą języków leniwych jest ``memoizacja'' obliczanych wartości,
tak, aby nie obliczać tego samego dwa lub więcej razy.  Np.  w wyrażeniu
(\x -> x*x) (bar 1), dostaniesz (bar 1)*(bar 1), ale (bar 1) będzie
policzony tylko raz, a wynik wstawiony do mnożenia dwa razy.




-- 
<>> kristof@swissmail.org <Krzysztof Parzyszek>    9/2/2002
<<> "If you can't convince them, confuse them" -- HS Truman
Technical Details
Message-ID: <b0c927$fiv$1@rmf-fm.presscom.net>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!waszyngton.rmf.pl!not-for-mail
References: <b0a9ea$aum$1@news.tpi.pl> <b0aj4r$lcv$1@rmf-fm.presscom.net> <b0bfpe$3sn$1@news.tpi.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!waszyngton.rmf.pl!not-for-mail
From: Krzysztof Parzyszek <kristof@swissmail.org>
Newsgroups: pl.comp.lang.funkcyjne
Subject: Re: leniwosc jezyka
Date: Sat, 18 Jan 2003 19:14:15 +0000 (UTC)
Organization: RMF FM Waszyngton
Lines: 30
Message-ID: <b0c927$fiv$1@rmf-fm.presscom.net>
References: <b0a9ea$aum$1@news.tpi.pl> <b0aj4r$lcv$1@rmf-fm.presscom.net> <b0bfpe$3sn$1@news.tpi.pl>
NNTP-Posting-Host: antares.student.iastate.edu
Mime-Version: 1.0
X-Trace: rmf-fm.presscom.net 1042917255 15967 64.113.65.96 (18 Jan 2003 19:14:15 GMT)
X-Complaints-To: abuse@rmf.pl
NNTP-Posting-Date: Sat, 18 Jan 2003 19:14:15 +0000 (UTC)
User-Agent: slrn/0.9.7.4 (FreeBSD)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit