-
181. Data: 2017-09-03 10:15:49
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: Wojciech Muła <w...@g...com>
On Wednesday, August 23, 2017 at 8:53:54 PM UTC+2, AK wrote:
> Nie wiecie Mlodziezy Szanowna jak cieszy starego dinozaura gdy sie czyta w/w i
czuje,
> ze sa jeszcze nieliczni mlodzi
Adamie, ja się już do 40-tki zbliżam.
> z kregu MWZDM
I do tego jestem ze wsi. :)
W naszej pracy trzeba być krytycznym, myślę, że przede wszystkim
w stosunku do siebie. Wpadanie w zachwyt nad jakimś rozwiązaniem
technicznym, religijny stosunek do języka, itp. świadczy o podejściu
amatorskim. Nie jest to oczywiście nic złego, ale zaburza obraz
świata.
w.
-
182. Data: 2017-09-03 17:40:22
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: "M.M." <m...@g...com>
On Sunday, September 3, 2017 at 10:15:50 AM UTC+2, Wojciech Muła wrote:
> On Wednesday, August 23, 2017 at 8:53:54 PM UTC+2, AK wrote:
> > Nie wiecie Mlodziezy Szanowna jak cieszy starego dinozaura gdy sie czyta w/w i
czuje,
> > ze sa jeszcze nieliczni mlodzi
>
> Adamie, ja się już do 40-tki zbliżam.
>
> > z kregu MWZDM
>
> I do tego jestem ze wsi. :)
>
> W naszej pracy trzeba być krytycznym, myślę, że przede wszystkim
> w stosunku do siebie. Wpadanie w zachwyt nad jakimś rozwiązaniem
> technicznym, religijny stosunek do języka, itp. świadczy o podejściu
> amatorskim. Nie jest to oczywiście nic złego, ale zaburza obraz
> świata.
>
> w.
Całkowicie żaden zawodowiec nie uniknie emocji, wiary, upodobań, itd.
Pozdrawiam
-
183. Data: 2018-01-02 00:18:44
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: g...@g...com
W dniu piątek, 25 sierpnia 2017 10:20:37 UTC+2 użytkownik Maciej Sobczak napisał:
> > To nie jest wciskanie ludziom kitu. Rekurencja w ogólności
> > jest prostsza do zrozumienia dla ludzi.
>
> Nie zgadzam się.
Mój przodek to albo mój rodzic, albo rodzic jakiegoś mojego przodka.
Czy jest w tym coś trudnego do zrozumienia?
Czy dałoby się to jakoś łatwiej wyrazić w formie iteracyjnej?
-
184. Data: 2018-01-02 08:28:30
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: Maciej Sobczak <s...@g...com>
> Mój przodek to albo mój rodzic, albo rodzic jakiegoś mojego przodka.
>
> Czy jest w tym coś trudnego do zrozumienia?
Nic, oprócz może tego, że samo pojęcie przodka zdefiniowane w ten sposób jest mało
użyteczne. W naturze liczba użytecznych przodków jest tak mała, że mieszczą się przy
jednym (wigilijnym?) stole i całkiem łatwo można ich zdefiniować przez wyliczenie
(tata Piotr, dziadek Zbigniew i pradziadek Eustachy), co nawet ułatwia codzienne
interakcje - np. "Krzysiu, podaj pradziadkowi bigos, bo niedowidzi". Chyba nie
sądzisz, że Krzysiu poda bigos najpierw tacie, tylko po to, żeby ten podał dziadkowi
a ten dalej pradziadkowi (i skąd pradziadek będzie wiedział, że to dla niego)?
> Czy dałoby się to jakoś łatwiej wyrazić w formie iteracyjnej?
Oczywiście, zwłaszcza jeśli w dyskusji pojawia się pojęcie stopnia pokrewieństwa albo
inne limity liczbowe, przy których sztuczna i potencjalna nieskończoność mechanizmu
rekurencji jest tylko przeszkodą. Każ komuś wymienić potomków kogośtam w trzecim
pokoleniu i zobacz, jak to zrobi.
Rekurencja jest sztuczna i nienaturalna. Ani ludzie tak nie myślą ani komputery tak
nie działają. No i żeby zrozumieć rekurencję, trzeba najpierw zrozumieć rekurencję...
--
Maciej Sobczak * http://www.inspirel.com
-
185. Data: 2018-01-02 10:45:18
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: g...@g...com
W dniu wtorek, 2 stycznia 2018 08:28:31 UTC+1 użytkownik Maciej Sobczak napisał:
> > Mój przodek to albo mój rodzic, albo rodzic jakiegoś mojego przodka.
> >
> > Czy jest w tym coś trudnego do zrozumienia?
>
> Nic, oprócz może tego, że samo pojęcie przodka zdefiniowane w ten sposób jest mało
użyteczne.
To, czy coś jest użyteczne, czy nie jest, zależy od celu, który się
przed sobą stawia. Podana przeze mnie definicja jest użyteczna do wyjaśnienia
tego, w jaki sposób rozumiemy pojęcie przodka. Może też być użyteczna
dla osób zajmujących się genealogią.
Moje wyzwanie nie jest takie, żebyś wskazał różne obszary, w których
pojęcie przodka nie jest użyteczne - bo takich obszarów jest wiele
(np. ciesielstwo albo kowalstwo artystyczne), tylko takie, żebyś zdefiniował
pojęcie przodka w sposób, który będzie równoważny powyższemu (tzn. będzie
uchwytywało naszą intuicję odnośnie tego, co to znaczy być czyimś przodkiem),
a który będzie nierekurencyjny.
> > Czy dałoby się to jakoś łatwiej wyrazić w formie iteracyjnej?
>
> Oczywiście, zwłaszcza jeśli w dyskusji pojawia się pojęcie stopnia pokrewieństwa
albo inne limity liczbowe, przy których sztuczna i potencjalna nieskończoność
mechanizmu rekurencji jest tylko przeszkodą. Każ komuś wymienić potomków kogośtam w
trzecim pokoleniu i zobacz, jak to zrobi.
Pewnie to zależy od tego, z kim będę rozmawiał, i od okoliczności,
w jakich będę to robił.
> Rekurencja jest sztuczna i nienaturalna. Ani ludzie tak nie myślą ani komputery tak
nie działają. No i żeby zrozumieć rekurencję, trzeba najpierw zrozumieć rekurencję...
Rzecz w tym, że otóż właśnie ludzie tak myślą.
Peano sformułował swoją aksjomatykę przed powstaniem komputerów.
Wskazówka: Peano był człowiekiem.
Spróbuj zaimplementować quicksorta albo mergesorta bez użycia rekurencji.
Nawet szybką transformatę Fouriere'a dużo łatwiej zrozumieć w jej zapisie
rekurencyjnym, który jest podstawą do konwersji do postaci iteracyjnej
(której celem jest optymalizacja).
-
186. Data: 2018-01-02 14:32:06
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: Tomasz Kaczanowski <k...@p...onet.pl>
W dniu 2018-01-02 o 08:28, Maciej Sobczak pisze:
> Rekurencja jest sztuczna i nienaturalna. Ani ludzie tak nie myślą ani komputery tak
nie działają.
Chyba, że ktoś jest uczulony na własne kichanie :P
--
http://kaczus.ppa.pl/art/promocja-ksiazek,28.html
-
187. Data: 2018-01-02 17:27:51
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: Maciej Sobczak <s...@g...com>
> Moje wyzwanie nie jest takie, żebyś wskazał różne obszary, w których
> pojęcie przodka nie jest użyteczne - bo takich obszarów jest wiele
> (np. ciesielstwo albo kowalstwo artystyczne), tylko takie, żebyś zdefiniował
> pojęcie przodka w sposób, który będzie równoważny powyższemu (tzn. będzie
> uchwytywało naszą intuicję odnośnie tego, co to znaczy być czyimś przodkiem),
> a który będzie nierekurencyjny.
Przodek to rodzic lub jego rodzic, itd.
Słowo kluczowe "itd." pełni rolę pętli. Ta definicja jest iteracyjna, jest nawet
gramatycznie krótsza i nie używa definiowanego słowa po prawej stronie, więc łatwiej
się ją parsuje.
Dla mnie OK.
> Rzecz w tym, że otóż właśnie ludzie tak myślą.
W takim razie to są jacyś inni ludzie, niż ci, którzy piszą definicje zawodowo:
https://sjp.pwn.pl/slowniki/przodek.html
Jest pewna wartość w tym, że po prawej stronie definicji nie ma definiowanego
pojęcia. Myślę, że ta wartość przyświeca twórcom słowników.
> Spróbuj zaimplementować quicksorta albo mergesorta bez użycia rekurencji.
Tak, ja wiem, że rekurencja przydaje się do implementacji rekurencyjnych algorytmów.
Sztuczne i nienaturalne narzędzie do rozwiązywania sztucznych i nienaturalnych
problemów. :-)
(Naturalnym mechanizmem sortowania są bąbelki, stąd właśnie ta nazwa.)
> Nawet szybką transformatę Fouriere'a dużo łatwiej zrozumieć w jej zapisie
> rekurencyjnym,
Przy czym jest to szczególny przypadek transformaty Fouriera, która sama jest
zdefiniowana wzorem wcale nie rekurencyjnym a związek szybkiej transformaty z ogólną
wcale nie jest intuicyjny:
https://pl.wikipedia.org/wiki/Szybka_transformacja_F
ouriera
Czyli znowu mamy ten sam schemat: rekurencja okazuje się być narzędziem do realizacji
rekurencyjnych algorytmów, co wcale nie jest odkrywcze. Ciekawe by było dopiero
stwierdzenie, że rekurencja jest procesem naturalnym a tak nie jest, ani w
sortowaniu, ani nawet w transformacie Fouriera.
--
Maciej Sobczak * http://www.inspirel.com
-
188. Data: 2018-01-02 21:27:03
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: g...@g...com
W dniu wtorek, 2 stycznia 2018 17:27:52 UTC+1 użytkownik Maciej Sobczak napisał:
> > Moje wyzwanie nie jest takie, żebyś wskazał różne obszary, w których
> > pojęcie przodka nie jest użyteczne - bo takich obszarów jest wiele
> > (np. ciesielstwo albo kowalstwo artystyczne), tylko takie, żebyś zdefiniował
> > pojęcie przodka w sposób, który będzie równoważny powyższemu (tzn. będzie
> > uchwytywało naszą intuicję odnośnie tego, co to znaczy być czyimś przodkiem),
> > a który będzie nierekurencyjny.
>
> Przodek to rodzic lub jego rodzic, itd.
>
> Słowo kluczowe "itd." pełni rolę pętli. Ta definicja jest iteracyjna, jest nawet
gramatycznie krótsza i nie używa definiowanego słowa po prawej stronie, więc łatwiej
się ją parsuje.
> Dla mnie OK.
Jeżeli już, to raczej bym napisał to jako
"przodek to rodzic, albo rodzic rodzica, albo rodzic rodzica rodzica, itd."
(w Twojej definicji jest amfibolia)
Ale OK, to jest dobra definicja, i użycie wielokropka czy też operatora
generalizacji ma jak najbardziej sens.
Mogę się nawet zgodzić, że tego rodzaju definicja jest łatwiejsza
do zrozumienia, ale nie jest prostsza, ze względu na to, że samo
działanie operatora "itd" jest czymś raczej skomplikowanym.
Najwidoczniej mówimy tutaj o dwóch porządkach, bo kiedy ja mówię
o prostocie, mam na myśli prostotę pojęciową, a nie łatwość rozumienia.
> > Rzecz w tym, że otóż właśnie ludzie tak myślą.
>
> W takim razie to są jacyś inni ludzie, niż ci, którzy piszą definicje zawodowo:
Podejrzewam, że to raczej zależy od zawodu i lokalnych idiosynkrazji.
Ale tak, w ogólności ludzie różnią się między sobą.
> > Spróbuj zaimplementować quicksorta albo mergesorta bez użycia rekurencji.
>
> Tak, ja wiem, że rekurencja przydaje się do implementacji rekurencyjnych
algorytmów. Sztuczne i nienaturalne narzędzie do rozwiązywania sztucznych i
nienaturalnych problemów. :-)
>
> (Naturalnym mechanizmem sortowania są bąbelki, stąd właśnie ta nazwa.)
Jaka nazwa? Nazwa "sortować" wzięła się od łacińskiego słowa "sors",
oznaczającego przeznaczenie albo wyrok, i nie ma nic wspólnego
z bąbelkami. Nazwa "sortowanie bąbelkowe" wzięła się od pewnej metafory,
zaś kwestia, czy metafory są, czy nie są czymś "naturalnym" jest
zupełnie niejasna.
> Czyli znowu mamy ten sam schemat: rekurencja okazuje się być narzędziem do
realizacji rekurencyjnych algorytmów, co wcale nie jest odkrywcze. Ciekawe by było
dopiero stwierdzenie, że rekurencja jest procesem naturalnym a tak nie jest, ani w
sortowaniu, ani nawet w transformacie Fouriera.
Nie do końca rozumiem, co masz na myśli mówiąc o "procesach naturalnych".
Jeżeli mamy kurę, która składa jajko, z którego wykluwa się kura, która
składa jajko, z którego wykluwa się ..., to czy to nie jest proces
reKUREncyjny par excellence?
Podobnie jest zresztą z opisem języków. Hierarcha Chomsky'ego zrodziła
się przy okazji badań nad językami naturalnymi, i pewne cechy języków
uniwersalnych -- zarówno mówionych, jak i tych używanych do programowania,
znajdują najprostszy wyraz w opisie rekurencyjnym. Praktycznie wszystkie
języki programowania opisuje się rekurencyjnie przy pomocy BNF.
Taki opis jest zrozumiały, i nie wydaje się, żebyśmy dysponowali
do tego celu jakimś lepszym narzędziem.
Nie rozumiem Twojego argumentu odnośnie tego, czy "rekurencja jest
procesem naturalnym", i co to w ogóle wg. Ciebie znaczy "proces
naturalny", i ogólniej - czym jest "naturalność".
-
189. Data: 2018-01-03 10:58:10
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: Maciej Sobczak <s...@g...com>
> > (Naturalnym mechanizmem sortowania są bąbelki, stąd właśnie ta nazwa.)
>
> Jaka nazwa?
https://stackoverflow.com/questions/31059479/why-bub
ble-sort-is-called-bubble-sort
> Nazwa "sortowanie bąbelkowe" wzięła się od pewnej metafory,
Z obserwacji natury. :-)
> Nie do końca rozumiem, co masz na myśli mówiąc o "procesach naturalnych".
Takich, które występują w naturze. Wliczamy w to procesy fizyczne, chemiczne, itp.
> Jeżeli mamy kurę, która składa jajko, z którego wykluwa się kura, która
> składa jajko, z którego wykluwa się ..., to czy to nie jest proces
> reKUREncyjny par excellence?
Ciekawy przykład, ale Słońce też wschodzi i zachodzi i znowu wschodzi. Deszcz pada,
potem woda paruje a potem z tej pary robią się chmury i znowu pada. Itd. Jeśli coś
się powtarza, to mówimy, że jest to cykl. Pojęcie rekurencji nie jest do tego
potrzebne ani nie ułatwia rozumienia tych zjawisk. Z jakiegoś powodu wszystkie takie
zjawisko omawia się w przedszkolach, na szczęście dla przedszkolaków bez rekurencji.
> Podobnie jest zresztą z opisem języków.
Ten przykład jest już ciekawszy. Możesz mnie przekonać, że nawet tak prostą rzecz jak
wyrażenie arytmetyczne łatwiej opisać pozwalając na rekurencję.
> Praktycznie wszystkie
> języki programowania opisuje się rekurencyjnie przy pomocy BNF.
Języki programowania nie są naturalne. A języków naturalnych nie opisuje się w BNF. I
tu wracamy do starego argumentu.
> Taki opis jest zrozumiały, i nie wydaje się, żebyśmy dysponowali
> do tego celu jakimś lepszym narzędziem.
W odniesieniu do wielu obecnych języków programowania, zgadzam się - i tam też
stosuję rozwiązania rekurencyjne.
--
Maciej Sobczak * http://www.inspirel.com
-
190. Data: 2018-01-03 12:24:18
Temat: Re: Co jest nie tak z C++ (było: Rust)
Od: g...@g...com
W dniu środa, 3 stycznia 2018 10:58:12 UTC+1 użytkownik Maciej Sobczak napisał:
> > Nie do końca rozumiem, co masz na myśli mówiąc o "procesach naturalnych".
>
> Takich, które występują w naturze. Wliczamy w to procesy fizyczne, chemiczne, itp.
A procesy myślowe występują w naturze?
Czy produkcja samochodów jest procesem występującym w naturze?
I dlaczego to miałoby być istotne?
> > Jeżeli mamy kurę, która składa jajko, z którego wykluwa się kura, która
> > składa jajko, z którego wykluwa się ..., to czy to nie jest proces
> > reKUREncyjny par excellence?
>
> Ciekawy przykład, ale Słońce też wschodzi i zachodzi i znowu wschodzi. Deszcz pada,
potem woda paruje a potem z tej pary robią się chmury i znowu pada. Itd. Jeśli coś
się powtarza, to mówimy, że jest to cykl. Pojęcie rekurencji nie jest do tego
potrzebne ani nie ułatwia rozumienia tych zjawisk. Z jakiegoś powodu wszystkie takie
zjawisko omawia się w przedszkolach, na szczęście dla przedszkolaków bez rekurencji.
Jest zasadnicza różnica pomiędzy biologiczną reprodukcją, a obrotem
słońca dookoła ziemi. Kura tworzy swoje (zmodyfikowane) kopie (co w świecie
cybernetyki określane jest mianem "autopoiesis"), zaś Słońce cały czas
jest jedno. Z jakiegoś powodu pytanie "co było pierwsze, kura czy jajko?"
stanowi dla nas zagwozdkę, zaś pytanie "co było pierwsze, dzień czy noc?"
już raczej nie. Zauważ również, że w samym tym pytaniu manifestuje się
myślenie rekurencyjne, czyli potrzeba ustalenia przypadku bazowego
(którym miałaby być kura albo jajko) i kroku (czyli znoszenie jajka albo
wykluwanie się, w zależności od tego, na jakim etapie jesteśmy).
> > Podobnie jest zresztą z opisem języków.
>
> Ten przykład jest już ciekawszy. Możesz mnie przekonać, że nawet tak prostą rzecz
jak wyrażenie arytmetyczne łatwiej opisać pozwalając na rekurencję.
>
> > Praktycznie wszystkie
> > języki programowania opisuje się rekurencyjnie przy pomocy BNF.
>
> Języki programowania nie są naturalne. A języków naturalnych nie opisuje się w BNF.
I tu wracamy do starego argumentu.
BNF jest wariantem gramatyki bezkontekstowej (typ 3 w hierarchii Chomsky'ego),
i to stamtąd pochodzi. Choć Chomsky używał aparatury pojęciowej teorii
informacji, motywacją do rozwinięcia jego teorii było opisywanie języków
naturalnych właśnie.
> > Taki opis jest zrozumiały, i nie wydaje się, żebyśmy dysponowali
> > do tego celu jakimś lepszym narzędziem.
>
> W odniesieniu do wielu obecnych języków programowania, zgadzam się - i tam też
stosuję rozwiązania rekurencyjne.
Cieszę się.