Article View: pl.comp.os.linux.programowanie
Article #60139Re: Jak zrobić program obliczający dużą silnię?
From: Maciej Sobczak
Date: Thu, 03 Nov 2005 14:33
Date: Thu, 03 Nov 2005 14:33
36 lines
3528 bytes
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!newsReferences:
<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