- 
X-Received: by 10.31.48.138 with SMTP id w132mr43121vkw.23.1503563125043; Thu, 24 Aug
 2017 01:25:25 -0700 (PDT)
 X-Received: by 10.31.48.138 with SMTP id w132mr43121vkw.23.1503563125043; Thu, 24 Aug
 2017 01:25:25 -0700 (PDT)
 Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
 0.net!peer02.am4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-medi
 a.com!news.highwinds-media.com!v29no261522qtv.0!news-out.google.com!f21ni172qta
 .1!nntp.google.com!e2no261714qta.1!postnews.google.com!glegroupsg2000goo.google
 groups.com!not-for-mail
 Newsgroups: pl.comp.programming
 Date: Thu, 24 Aug 2017 01:25:24 -0700 (PDT)
 In-Reply-To: <c...@g...com>
 Complaints-To: g...@g...com
 Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=194.9.244.37;
 posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
 NNTP-Posting-Host: 194.9.244.37
 References: <f...@g...com>
 <1...@g...com>
 <7...@g...com>
 <b...@g...com>
 <a...@n...v.pl>
 <2...@g...com>
 <a...@n...v.pl>
 <on23a3$85s$1@node1.news.atman.pl>
 <a...@n...v.pl>
 <on75ke$g4u$1@node2.news.atman.pl>
 <5...@g...com>
 <onfotu$lh6$1@node1.news.atman.pl>
 <0...@g...com>
 <3...@g...com>
 <6...@g...com>
 <c...@g...com>
 <d...@g...com>
 <5...@g...com>
 <c...@g...com>
 <3...@g...com>
 <6...@g...com>
 <c...@g...com>
 User-Agent: G2/1.0
 MIME-Version: 1.0
 Message-ID: <6...@g...com>
 Subject: Re: Co jest nie tak z C++ (było: Rust)
 From: Maciej Sobczak <s...@g...com>
 Injection-Date: Thu, 24 Aug 2017 08:25:25 +0000
 Content-Type: text/plain; charset="UTF-8"
 Content-Transfer-Encoding: quoted-printable
 X-Received-Body-CRC: 92901081
 X-Received-Bytes: 7842
 Xref: news-archive.icm.edu.pl pl.comp.programming:211272
 [ ukryj nagłówki ]> Mogę podać inny przykład, bliższy temu, o czym tutaj jest mowa. 
 >
 > for (int i = 0; i < ticks_per_frame; i++) {
 > for_each(in_seq(sectors), bind2nd(mem_fun(&Sector::update), 0.07));
 > for_each(in_seq(portals), bind2nd(mem_fun(&Portal::update), 0.07));
 > for_each(in_seq(ropes), bind2nd(mem_fun(&Rope::update), 0.07));
 > }
 
 Faktycznie koszmarek.
 
 > Dla odmiany taki chociażby Python pozwoliłby wyrazić te konstrukcje
 > np. tak:
 >
 > for instance in range(ticks_per_second):
 > for sector in sectors:
 > sector.update(0.07)
 
 A gdzieś tak od pół dekady C++ pozwala tak:
 
 for (Sector & s : sectors)
 s.update(0.07);
 
 W pewnym okresie była taka moda, że chyba wszystkie języki teraz mają coś podobnego.
 
 > > Ale przecież operatory w Wolframie też można wypowiedzieć.
 > > Np. operator indeksowania (to te podwójne nawiasy) nazywa się
 > > Part.
 >
 > Dziwne. Nie przyszło mi do głowy, żeby [[_ ;; ;; _]] wymówić "Part".
 
 Dziwne. Tak się właśnie ten operator nazywa. Podobnie, + nazywa się Plus. Itd.
 
 > Prędzej wymówiłbym to jako "otwórz nawias kwadratowy, otwórz nawias
 > kwadratowy, coś, spacja, średnik, średnik, spacja, średnik, średnik,
 > spacja, coś, zamknij nawias kwadratowy, zamknij nawias kwadratowy".
 
 Jasne. A wywołanie funkcji w SmallTalku wymawiasz "ttl, otwórz nawias okrągły, coś,
 zamknij nawias okrąły". Nie silmy się na takie trolowanie.
 
 > Wątpliwości w dalszym ciągu wzbudza rola podkreślnika po argumencie
 > po lewej stronie znaku ":=",
 
 To jest wzorzec, który akceptuje cokolwiek. Czyli jest to definicja funkcji, która ma
 jeden argument dowolnego typu. Można wzorzec ograniczyć np tak:
 
 oddsEvens[x_List] := ...
 
 i wtedy jest to funkcja, która ma jeden argument typu List.
 W tym przypadku można byłoby tak zrobić, ale wtedy taka funkcja działałaby tylko z
 listami, a akurat nie tylko listy mają taką strukturę, którą moglibyśmy chcieć w ten
 sposób uporządkować. Dlatego wolałem zostawić szerszy wzorzec.
 
 http://reference.wolfram.com/language/ref/Blank.html
 
 > oraz to, dlaczego do wyrażenia tożsamości
 > użyto symbolu powszechnie używanego w informatyce w roli przypisania.
 
 Bo to jest przypisanie. Tak się właśnie definiuje funkcje.
 
 http://reference.wolfram.com/language/ref/SetDelayed
 .html
 
 > Podwójnych podwójnych średników też nie lubię.
 
 To napisz x[[1;;-1;;2]], wtedy będzie widać, że indeksowanie jest od 1 do końca. Ta
 spacja między średnikami to opuszczone -1.
 
 > Zgadzam się.
 > Gdybyśmy zresztą nawet nie dysponowali funkcją Parts, moglibyśmy
 > ją sobie zdefiniować przy pomocy cons, car, cdr i rekurencji.
 
 I to jest właśnie coś, czego nie lubię.
 Indeksowanie jest naturalną operacją i dla komputera (w sensie: hardware) bardziej
 podstawową. Dlatego wolę, jeśli język ją wspiera bezpośrednio.
 
 W ogóle, w naturze nie ma procesów rekurencyjnych. To jest na siłę wciskany ludziom
 kit, że rekurencja jest podstawą innych rzeczy. Dlatego języki promujące rekurencję
 jako podstawową konstrukcję są nienaturalne - zarówno w nauce, jak i w wykonaniu.
 
 > Że języki, które znamy, warunkują sposób, w jaki myślimy,
 
 Niezupełnie. Pierwszy język może to warunkować (i Wittgensteinowi chodziło o język
 naturalny). Natomiast później nasze myślenie może warunkować pozostałe wybory.
 
 > Nie wiem zresztą, czy miał przekonać. Raczej miał stanowić
 > ilustrację tego, w jaki sposób ta maksyma odzwierciedla się
 > w kontekście języków programowania. Sądzę, że -- mimo wszystkich
 > zarzutów, jakie wysnułeś, dotyczących rozwiązania wymyślonego
 > przez Kaya (i które nb nijak się mają do tego, co chciałem
 > zakomunikować) -- stanowi dobrą ilustrację.
 
 Tak. Kiepski język prowadzi do kiepskiego myślenia i w rezultacie do kiepskich
 programów. :-)
 
 > w szczególności warto przyglądać się
 > temu, jak historycznie kształtowały się nasze sposoby rozumienia
 > obliczania i komputerów.
 
 Tak.
 
 > Skoro mowa o kontekście, może zamiast pokazywać przykład
 > w Mathematice, która stosunkowo niewiele różni się od ISWIMa z lat 60.,
 > może spróbowałbyś pokazać rozwiązanie tego zadania w nowoczesnym
 > języku, jakim jest C++, żebyśmy zobaczyli
 
 Dlaczego? Ty nie pokazałeś przykładu w C++. :-)
 
 --
 Maciej Sobczak * http://www.inspirel.com
 
Następne wpisy z tego wątku
- 24.08.17 11:38 g...@g...com
- 24.08.17 12:20 M.M.
- 24.08.17 13:02 g...@g...com
- 24.08.17 15:42 fir
- 24.08.17 15:46 g...@g...com
- 24.08.17 17:32 M.M.
- 24.08.17 18:10 fir
- 24.08.17 20:11 Mateusz Bogusz
- 24.08.17 21:24 fir
- 24.08.17 21:32 g...@g...com
- 24.08.17 23:48 Adam M
- 25.08.17 00:23 g...@g...com
- 25.08.17 01:12 M.M.
- 25.08.17 06:04 AK
- 25.08.17 06:05 AK
Najnowsze wątki z tej grupy
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
Najnowsze wątki
- 2025-10-31 Gazowy kocioł CO regulacja cyklingu i regulacja pogodowa
- 2025-10-31 Warszawa => Starszy Konsultant SAP - obszar PP <=
- 2025-10-31 Zamek elektroniczny
- 2025-10-31 Warszawa => Sales Assistant <=
- 2025-10-31 Warszawa => Senior SAP Consultant - PP area <=
- 2025-10-31 Warszawa => Junior Rekruter <=
- 2025-10-31 Warszawa => Engineering Manager (doświadczenie w branży lotniczej lu
- 2025-10-30 Był neosędzia w składzie jest cofka w apelacji [dożywocie za potrójne zabójstwo]
- 2025-10-30 Warszawa => Lead SAP PP Consultant <=
- 2025-10-30 Poznań => Konsultant SAP HCM <=
- 2025-10-30 Warszawa => Junior Rekruter <=
- 2025-10-30 Warszawa => Senior SAP Consultant - PP area <=
- 2025-10-30 Zakrzewo => SAP HCM Consultant <=
- 2025-10-30 Gang przestępców napadających przestępców już rozbity! [CBŚP,media,prawny humor]
- 2025-10-30 Kraków => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu




![Ranking kont firmowych - w jakim banku założysz najlepsze konto firmowe w 2025 r. [© DigitalMarketingAgency - pixabay.com] Ranking kont firmowych - w jakim banku założysz najlepsze konto firmowe w 2025 r.](https://s3.egospodarka.pl/grafika2/konto-firmowe/Ranking-kont-firmowych-w-jakim-banku-zalozysz-najlepsze-konto-firmowe-w-2025-r-266886-150x100crop.jpg) 
 
![Przelew zagraniczny - jaką opcję wybrać? [© Pio Si - Fotolia.com] Przelew zagraniczny - jaką opcję wybrać?](https://s3.egospodarka.pl/grafika2/przelewy/Przelew-zagraniczny-jaka-opcje-wybrac-219379-150x100crop.jpg) 
![Jaki jest koszt przejechania 100 km samochodem? Sprawdź porównanie benzyny, oleju napędowego, LPG i innych paliw. [© matthias21 - Fotolia.com] Jaki jest koszt przejechania 100 km samochodem? Sprawdź porównanie benzyny, oleju napędowego, LPG i innych paliw.](https://s3.egospodarka.pl/grafika2/wydatki-na-paliwo/Jaki-jest-koszt-przejechania-100-km-samochodem-Sprawdz-porownanie-benzyny-oleju-napedowego-LPG-i-innych-paliw-262279-150x100crop.jpg) 
 Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei
Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei 
 
 
 
![Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie [© wygenerowane przez AI] Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie](https://s3.egospodarka.pl/grafika2/oszczedzanie-pieniedzy/Milion-na-koncie-Wystarczylo-inwestowac-po-okolo-2-tysiace-miesiecznie-269397-150x100crop.jpg) 
![Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy [© pixabay] Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy](https://s3.egospodarka.pl/grafika2/rynek-najmu/Wynajem-mieszkania-w-Warszawie-pochlania-44-pensji-Zobacz-jak-wypadamy-na-tle-Europy-269391-150x100crop.jpg) 
![Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie? [© wygenerowane przez AI] Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie?](https://s3.egospodarka.pl/grafika2/prawa-pasazera/Lot-z-niespodzianka-jak-overbooking-zmienia-podroz-i-jakie-prawa-maja-pasazerowie-269384-150x100crop.jpg) 
![Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu [© wygenerowane przez AI] Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu](https://s3.egospodarka.pl/grafika2/lider/Lider-z-sercem-empatia-i-zaufanie-jako-klucz-do-sukcesu-zespolu-269133-150x100crop.png) 
![Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam? [© wygenerowane przez AI] Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam?](https://s3.egospodarka.pl/grafika2/AI/Banka-AI-za-5-bilionow-dolarow-Kiedy-inwestorzy-powiedza-sprawdzam-269382-150x100crop.png) 
 


