-
Data: 2012-06-15 00:41:40
Temat: Re: Czym jest programowanie?
Od: Michoo <m...@v...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 14.06.2012 21:49, Wojciech Muła wrote:
> W dniu czwartek, 14 czerwca 2012 21:18:20 UTC+2 użytkownik Michoo napisał:
>> On 14.06.2012 12:31, Wojciech Mu�a wrote:
>>> W dniu czwartek, 14 czerwca 2012 01:39:27 UTC+2 u�ytkownik Michoo napisa�:
>>> A to co, jak nie podanie explicite zakresu dost�pu.
>> Sposobu dost�pu - warto�� czy referencja (czy brak).
>
> Ale po co? Gdy wprowadzasz nowy zakres (np. ifem) to nie
> musisz pisać jaki będzie sposób dostępu do zmiennych
> z zewnętrznych zakresów.
Ale tego ifa nie możesz wyekspediować w inne miejsce. To znaczy właśnie
w formie lambdy możesz, więc musisz powiedzieć jaki ma bagaż ze sobą zabrać.
[] - kompilator zapewni, że nie weźmie lokalnego kontekstu
[=] - skopiuje użyte zmienne
[&] - weźmie przez referencję
W ten sposób problem:
utwórz funktory, które "wiedzą" w której iteracji je wywołano i
jednocześnie współdzielą kontekst można zapisać jako
{
zmiene współdzielone;
for(int i=0;i<max_it;i++){
...
[&,iteration](){...};
...
}
wywoływanie lambd
>
>>> O tym pisa�em, �e programista *musi* przy definicji
>>> ustali�, do czego funkcja ma dost�p.
>> Zarzucasz, �e je�yk daje za du�e mo�liwo�ci programi�cie zamiast
>> ograniczy� si� do jedynej s�usznej wersji? No bez jaj...
>
> Sorry, ale to klepanie 3 znaków bez sensu. :)
No nie bez sensu. Dzięki tym trzem znakom to programista a nie twórcy
języka decydują jak się dana lambda zachowa.
W javie masz na przykład możliwość przekazania tylko zmiennej final,
więc żeby np przekazać do "lambdy" [1] stringa, który może zostać
zmodyfikowany pomiędzy utworzeniem obiektu a jego użyciem musisz tego
stringa zapakować w klasę - tam to dopiero jest pisania (albo
programiści, którym się nie chce robić dodatkowej klasy robią numery
pokroju:
list<String> l1 = new ArrayList<String>();
l1.add("some string");
final list<String> l2 = l1;
new clas ...
l2.get(0);
...
l2.set(0,"other string");
a to dopiero zaciemnia zapis.
)
[1] Czyli klasy/implementacji interface inline.
>
>>> BTW funkcje anonimowe s� og�lnie przereklamowane.
>> Uwa�am, �e s� wygodne:
>> [...]
>
> Nie twierdzę, że niewygodne, jednak sama idea mnie nie
> porywa, nawet w ukochanym pythonie nie używam dla onlinerów.
>
> BTW jestem ciekaw, jak wygląda debuggowanie takich
> anonimowych cudaków.
Na gcc generuje symbole postaci:
_ZNSt8functionIFivEEC2IZ3foovEUlvE_EET_NSt9enable_if
IXntsrSt11is_integralIS4_E5valueENS1_8_UselessEE4typ
eE
--
Pozdrawiam
Michoo
Następne wpisy z tego wątku
- 15.06.12 00:50 Michoo
- 15.06.12 00:53 slawek
- 15.06.12 02:28 Michoo
- 15.06.12 02:31 Michoo
- 15.06.12 07:18 Andrzej Jarzabek
- 15.06.12 07:22 Andrzej Jarzabek
- 15.06.12 07:52 Andrzej Jarzabek
- 15.06.12 07:57 Roman W
- 15.06.12 08:00 Andrzej Jarzabek
- 15.06.12 09:29 Artur Muszyński
- 15.06.12 10:27 Roman W
- 15.06.12 14:44 slawek
- 15.06.12 14:58 slawek
- 15.06.12 15:01 slawek
- 15.06.12 15:41 Roman W
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-03 Re: Tani dodatkowy sim do smartwacha
- 2024-12-03 Wróblewo => Analityk finansowy <=
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=
- 2024-12-02 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-02 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-12-02 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-02 Białystok => Delphi Programmer <=
- 2024-12-02 Poznań => Dyspozytor Międzynarodowy <=
- 2024-12-02 Szczecin => Key Account Manager (ERP) <=
- 2024-12-02 Poznań => Senior PHP Developer <=
- 2024-12-03 Usiłuję zapłacić za energetyzację...