🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #60139

Re: Jak zrobić program obliczający dużą silnię?

#60139
From: Maciej Sobczak
Date: Thu, 03 Nov 2005 14:33
36 lines
3528 bytes
Jacek Konieczny wrote:

>>Moje zdanie jest takie, że funkcje lokalne nie powinny widzieć *niczego* 
>>z ich zewnętrznego zakresu (ale można wykorzystać ich parametry do 
>>przekazania im jakiejś wartości albo referencji) 
> 
> To po co robić z nich funkcje lokalne?

W takim samym celu, jak stosujemy obiekty lokalne zamiast globalnych.

Zauważ, że w C++ można robić lokalne klasy a w nich funkcje składowe. Z 
tych funkcji nie widać nic, co istnieje w zakresie, gdzie ta lokalna 
klasa była zdefiniowana. Przydatność takich klas polega na tym, że one 
same mają ograniczony zasięg i nie są widoczne tam gdzie nie powinny - 
czyli ich "lokalność" jest mechanizmem raczej z kategorii enkapsulacji i 
ukrywania rzeczy nieistotnych gdzie indziej a nie jakimś cudownym 
eliksirem na powiązanie ze sobą obiektów z różnych zakresów.

Pod pojęciem "funkcje lokalne" w tej dyskusji miałem na myśli też lambdy 
i inne anonimowe twory (zdaje się, że Qrczak też o tym myślał) - 
zachęcam do rzucenia okiem na to:

http://www.msobczak.com/prog/articles/lambdacpp.html

Są tam przykłady użycia takich funkcji (paragraf "Anonymous Function"), 
ale *nie ma* przykładów na dostęp z tych funkcji do obiektów 
zdefiniowanych tam, gdzie one same były definiowane. Ten tekst pokazuje, 
że funkcje lokalne (lambdy) mogą być przydatne bez dodatkowego dostępu 
do czegokolwiek. No, nie licząc *typów* danych (więc jednak ściemniałem 
trochę z tym "brakiem widoczności czegokolwiek"), ale bez tego nie dało 
by się użyć lambdy w szablonie.


-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/
Technical Details
Message-ID: <dkd731$2u6$1@sunnews.cern.ch>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!irazu.switch.ch!news-zh.switch.ch!switch.ch!cernne03.cern.ch!cern.ch!news
References: <djfrn5$i55$1@nemesis.news.tpi.pl> <djij31$st1$1@sunnews.cern.ch> <20051024162624.GA1132@siebert> <djleog$fok$1@nemesis.news.tpi.pl> <1t4bv9mozvw38.12szxw58iqmbp.dlg@40tude.net> <djn9lh$ktl$1@nemesis.news.tpi.pl> <e2pcznjzv2gh$.1drgaxj9rqzhj.dlg@40tude.net> <djnjtf$suk$2@nemesis.news.tpi.pl> <1i7bbr8l84m9o$.8ttxld9ccdq4.dlg@40tude.net> <djnq5h$8ae$1@atlantis.news.tpi.pl> <gmqro8ttahov.aorv2e8thz25.dlg@40tude.net> <87wtk0iiqw.fsf@qrnik.zagroda> <djq3rj$4fm$1@sunnews.cern.ch> <87y84fz1bn.fsf@qrnik.zagroda> <djqg9q$1sg$1@sunnews.cern.ch> <87ll0ezpyl.fsf@qrnik.zagroda> <djsle0$q36$1@sunnews.cern.ch> <877jbx7q2t.fsf@qrnik.zagroda> <dk4n41$aue$1@sunnews.cern.ch> <87vezdanl0.fsf@qrnik.zagroda> <dk9su1$6su$1@sunnews.cern.ch> <87k6fqeq35.fsf@qrnik.zagroda> <dkcps0$2vq$1@sunnews.cern.ch> <slrndmk3v4.p01.jajcus@serwis2.beta>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!irazu.switch.ch!news-zh.switch.ch!switch.ch!cernne03.cern.ch!cern.ch!news
From: Maciej Sobczak <no.spam@no.spam.com>
Newsgroups: pl.comp.os.linux.programowanie
Subject: Re: Jak       zrobić program 
 obliczający dużą silnię?
Date: Thu, 03 Nov 2005 15:33:06 +0100
Organization: CERN - European Laboratory for Particle Physics
Lines: 36
Message-ID: <dkd731$2u6$1@sunnews.cern.ch>
References: <djfrn5$i55$1@nemesis.news.tpi.pl> <djij31$st1$1@sunnews.cern.ch> <20051024162624.GA1132@siebert> <djleog$fok$1@nemesis.news.tpi.pl> <1t4bv9mozvw38.12szxw58iqmbp.dlg@40tude.net> <djn9lh$ktl$1@nemesis.news.tpi.pl> <e2pcznjzv2gh$.1drgaxj9rqzhj.dlg@40tude.net> <djnjtf$suk$2@nemesis.news.tpi.pl> <1i7bbr8l84m9o$.8ttxld9ccdq4.dlg@40tude.net> <djnq5h$8ae$1@atlantis.news.tpi.pl> <gmqro8ttahov.aorv2e8thz25.dlg@40tude.net> <87wtk0iiqw.fsf@qrnik.zagroda> <djq3rj$4fm$1@sunnews.cern.ch> <87y84fz1bn.fsf@qrnik.zagroda> <djqg9q$1sg$1@sunnews.cern.ch> <87ll0ezpyl.fsf@qrnik.zagroda> <djsle0$q36$1@sunnews.cern.ch> <877jbx7q2t.fsf@qrnik.zagroda> <dk4n41$aue$1@sunnews.cern.ch> <87vezdanl0.fsf@qrnik.zagroda> <dk9su1$6su$1@sunnews.cern.ch> <87k6fqeq35.fsf@qrnik.zagroda> <dkcps0$2vq$1@sunnews.cern.ch> <slrndmk3v4.p01.jajcus@serwis2.beta>
NNTP-Posting-Host: abpc10883.cern.ch
Mime-Version: 1.0
X-Trace: sunnews.cern.ch 1131028385 3014 (None) 137.138.37.241
X-Complaints-To: news@sunnews.cern.ch
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050922 Red Hat/1.7.12-1.1.3.2.SL3
X-Accept-Language: en-us, en
In-Reply-To: <slrndmk3v4.p01.jajcus@serwis2.beta>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit