Article View: pl.comp.lang.funkcyjne
Article #184Re: leniwosc jezyka
From: Krzysztof Parzyszek
Date: Sat, 18 Jan 2003 19:14
Date: Sat, 18 Jan 2003 19:14
30 lines
1694 bytes
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-mailReferences:
<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