|
#31
|
|
|
|
|
Dnia 02.07.2008 Seweryn Habdank-Wojewodzki <sh-w.WYTNIJ> napisał/a:
> Witam > >> Chodzi mi o to, że jak dodam Derived_3, ale nie obsłużę jej >> w kodzie to chciałbym dostać błąd: >> // dodałem nową klasę >> class Derived_3 : public Base > > Nie bardzo widze, aby to miało globalny sens. Ech, i to jest właśnie to, co nazywam fiksacją językową. Najbardziej kanoniczny przykład wykorzystania alternatywy konstruktorów typów (uwaga na terminologię, to nie to samo co konstruktory z C++) jest definicja drzewa binarnego: type 'a tree = Leaf | Node of 'a * 'a tree * 'a tree Drzewo to albo liść, albo węzeł z etykietą i dwoma poddrzewami. To jest definicja zapisana wprost w języku i nikt jej nigdy nie zmieni. A jeśli zmieni, to znaczy, że przegrał, bo zmienia w ten sposób fundamentalny aparat pojęciowy. [ocaml:] > Może. Mnie ten język iteresuje hobbistycznie do 100 lini kodu -- > nie widzę problemów o których piszę. Dynamicznie rozwijajacego sie > kodu powyzej 100 000 lini nie widziałem w ocamlu. Ile linijek kodu (ale tak z ręką na sercu) w życiu napisałeś w OCamlu (ok, niechby nawet w *ML-ach i Haskellu razem wziętych), że wygłaszasz takie teksty? Widziałeś kiedyś choćby mldonkey? Albo Unisona? |
|
|
|
#32
|
|
|
|
|
On 2 Lip, 20:37, "Seweryn Habdank-Wojewodzki" <sh-wWYT>
wrote: > Nie bardzo widze, aby to miało globalny sens. Jeśli nie wszystkie wartości enuma zostaną obsłużone w danym switchu, to kompilator C bądź C++ potrafi pokazać ostrzeżenie. To Cię nie dziwi? No to wyobraź sobie pojęcie trochę szersze niż enum: oprócz skończonego zbioru przypadków mamy do wartości doczepione pewne parametry, zależne od tego, w którym są przypadku (przy której wartości enuma). Dziedziczenie to tylko jeden ze sposobów realizacji tzw. typów algebraicznych (znanych nie tylko z OCamla, ale z praktycznie wszystkich statycznie typowanych języków nazywanych tradycyjnie funkcyjnymi) w językach, które ich nie wspierają natywnie, ale mają dziedziczenie i sprawdzanie typu w czasie wykonania. Pascal miał zamiast tego tzw. rekord z wariantami. To jest biedniejsze niż typy algebraiczne, bo kompilator nie dba o to, żeby wyciągać parametry odpowiednie do danego przypadku: poziom pilnowania poprawności był na poziomie unii w C. |
|
#33
|
|
|
|
|
Witam
> type 'a tree = Leaf | Node of 'a * 'a tree * 'a tree > zmieni. A jeśli zmieni, to znaczy, że przegrał, bo zmienia w ten > sposób fundamentalny aparat pojęciowy. Ale mowa o wizytatorze i rozwijajaczym sie drzewie klas. W ogole nie przystaje do mojego przypadku. z klasami rozwijajacymi sie. Tu masz dwie klasy i koniec. Jak cos dodasz, to jest blad w projekcie. W kwestii wspomnianego wizytatora nie masz ograniczen projektowych. To samo jak masz strategie, czy inny wzorzec. Wiec nie porownuj tych przypadkow, bo one sa inne projektowo. Tu dodanie klasy jest bledem projektowym, a tam nie! > Ile linijek kodu (ale tak z ręką na sercu) w życiu napisałeś w OCamlu > (ok, niechby nawet w *ML-ach i Haskellu razem wziętych), że > wygłaszasz takie teksty? Liczac wszystkie to moze z 1000. Tak jak pisalem nie interesuje mnie to w duzym projekcie. > Widziałeś kiedyś choćby mldonkey? > Albo Unisona? A co to ma do rzeczy? Pisalem, ze uwazam ze w C++, to byloby chore. Dla ustalenia uwagi. rozwalanie kompilacji (poprzez rzucanie bledu bo jakas klasa jest nieobsluzona). Nic nie pisalem o tym czy to jest zle w ML. Pisalem, ze nie znam duzego kodu rozwijajacego sie, w ktorym moge popatrzec jak taki ficzer sie zachowuje. Slowo "nie znam" nie oznacza, ze go NIE MA. Jeszcze raz podkreslam. Mnie nie odpowiada BLAD rzucany przez kompilator w takiej sytuacji. Pozdrawiam, Seweryn Habdank-Wojewodzki. |
|
#34
|
|
|
|
|
Witam
> Jeśli nie wszystkie wartości enuma zostaną obsłużone w danym switchu, > to kompilator C bądź C++ potrafi pokazać ostrzeżenie. To Cię nie > dziwi? Warning to nie blad! Warning nie przewraca kompilacji (nie zawsze). Na gcc sa opcje w -pedantic, ze niektore warningi staja sie bledami. > No to wyobraź sobie pojęcie trochę szersze niż enum: oprócz > skończonego zbioru przypadków mamy do wartości doczepione pewne > parametry, zależne od tego, w którym są przypadku (przy której > wartości enuma). Alez potrafie sobie to wyobrazic. No wiec jesli potrafie sobie wyobrazic, to co? Co to za roznica, czy nawet cala klasa bedzie parametrem, a nie tylko ubogi identyfikator jakim jest enum. Dlatego uzywam listy typow jak potrzebuje miec cos w okolicach tego tematu. Ale jestem odlegly od twierdzenia, ze domyslane rzucanie BLEDU, to sluszne rozwiazanie. Pozdrawiam, Seweryn Habdank-Wojewodzki. |
|
#35
|
|
|
|
|
On 3 Lip, 07:25, Seweryn Habdank-Wojewódzki <habd> wrote:
> Warning to nie blad! Od początku była mowa o ostrzeżeniu. W którymś poście przez pomyłkę zrobił się z tego błąd. |
|
#36
|
|
|
|
|
Seweryn Habdank-Wojewodzki wrote:
> 1. Skąd kompilator ma wiedzieć ze w jakims moim headerze > niekoniecznie inkludowanym jest klasa D. Wróć do mojego pierwszego portu: kompilator ma ściśle ograniczony zbiór klas. > > 2. Nawet jesli includuje klasę D, to dlaczego projekt > ma sie nie kompilowac w 1000 miejscach, bo ja sobie > napisalem klasę D. to samo co w pierwszym punkcie. > > Pomysl tak: > masz 10 koderow kazdy co tydzien dziedziczy jakas klase z jakiejs > innej (takiej powodujacej błędy). > Sama obecnosc nowej klasy bedzie wywalac kompilacje. Pomyśl tak. Masz 10 koderów, dodajesz nową klasę. Jeden z nich zapomni dodać obsługi dla nowej klasy. Testy jednostkowe i całościowe siłą rzeczy nie pokryją 100% wszystkich przypadków, błąd nie wychodzi. Jedziesz do klienta na ewaluacje, a tutaj niespodzianka, powiedzmy GPF. A tak dodaje nową klasę. Mam ostrzeżenie od kompilatora i potencjalnie większe szanse, aby błędu uniknąć. > Tego nigdy nie naprawisz. Musisz miec mozliwosc, aby > [ciach] > 3. Jesli zatem musisz klase rejestrowac w czasie kompilacji, to czemu > nie uzyc, tego co język OFERUJE, np. listy typów, > szerzej o tym w kontekście wizytatora pisze Alexandrescu. Ponieważ wizytor to językowy idiom, wprowadzony po to aby ominąć ograniczenia np.: C++ i Javy. Przeczytaj wreszcie: http://www.inspirel.com/articles/Visitor_Revisited.html >> dalej w kodzie mam: > .. >> case Derived_2: >> cout << "2\n"; break; >> // <-- tutaj powinno być case Derived_3: > > Po co? Skąd wiesz, że ja w ogole chcę obsłużyć w tym miesjcu nową klasę. > Może nie jestem gotowy. Może NIGDY tego nie zrobię. Skoro nie będziesz chciał daj default i po sprawie. > Jeszcze raz mówię, pomyśl globalnie. > 10 koderów, każdy tydzień nowa klasa (to jest i tak bardzo wolno). > Ale powiedzmy, że raz na tydzień masz klasę dziedziczoną z takiego > cuda, co powoduje niekompilowanie się kodu. Pomyślałem globalnie i zdecydowanie wolę błąd/ostrzeżenie kompilatora niż błąd u klienta :P. > Teraz dorzucasz wersję debug, test i release, gdzie w release > nie masz niczego co naprawdę nie sprawdziłeś. > I po ostatnie. Masz miejsca gdzie celowo obsługujsze tylko dwie klasy. > > Jak to zrobisz? Oczywiście przy wizytowach i innych cudach samo się zrobi ( a najgorsze, w tym wszystkim, że niektóre języki nie mają preprocesora, jak w tym pisać? ). > > Wszelakie automaty bardzo automatyczne są do bani. > A propozycja nie kompilowania sie kodu, bo Xiński coś > dodał i wszystko trzeba rzucać, w kąt, bo w 1000 miejscach kod się > nie kompiluje, bo switch rzuca błędy, to ja dziękuję. > Jaki automat? To się nazywa porządny system typów. > > Nie wystarcza, tylko nie stwarza mnóstwa problemów, > ktore póki co widzę w Twoim wymaganiu. > Wole to napisac zapomoca listy typow i iterowac > ponich, wtedy, tylko tam gdzie prosze sie o guza > dostane po glowie a nie wszedzie. > Oczywiście. C++ rozwiązuje problemy, które nie występują w innych językach. Pozdrawiam KK |
|
#37
|
|
|
|
|
Seweryn Habdank-Wojewodzki wrote:
> Hmm... a ja myślałem, że można, tak samo jak można porownywać > C++ do Ocalma. Trzymajcie mnie. Spróbujmy inaczej: - Scala to klon Pythona. - e gdzie tam, nie można ich w ten sposób porównywać. - co ty mówisz? że nie można porównywać Pythona i Scala. - można, ale nie przez pryzmat tego, że Scala to klon Pythona. Scala to język o zupełnie innej filozofii. Jak dla mnie eot. Zaczyna mnie to już nużyć. Pozdrawiam KK |
|
#38
|
|
|
|
|
Witam
> Ponieważ wizytor to językowy idiom, wprowadzony po to aby > ominąć ograniczenia np.: C++ i Javy. Przeczytaj wreszcie:[..] Czytalem nie raz. Nie chodzi o ograniczenia jezyka, czytaj dalej!!! > > Jeszcze raz mówię, pomyśl globalnie. > > 10 koderów, każdy tydzień nowa klasa (to jest i tak bardzo wolno).. > > Ale powiedzmy, że raz na tydzień masz klasę dziedziczoną z takiego > > cuda, co powoduje niekompilowanie się kodu. > > Pomyślałem globalnie i zdecydowanie wolę błąd/ostrzeżenie > kompilatora niż błąd u klienta :P. I TU rozmywasz to co mowiles. TY mowiles o BLEDZIE. Qrczak wskazal na mozliwosc OSTRZERZENIA. Teraz wmawiasz mi, ze bredze, bo nie chce miec bledu. O ostrzezeniu nie mowiles! Co do ostrzezenia, to zgadzam sie, moze byc przydatne, ale blad w zadnym wypadku! Badz prosze precyzyjny, ok? > > Wszelakie automaty bardzo automatyczne są do bani. > > A propozycja nie kompilowania sie kodu, bo Xiński coś > > dodał i wszystko trzeba rzucać, w kąt, bo w 1000 miejscach kod się > > nie kompiluje, bo switch rzuca błędy, to ja dziękuję. > > Jaki automat? To się nazywa porządny system typów. Hmm... Pozadny system typow? Mam typ algorytmu, moze byc zastosowany w wielu miejscach. Ale kazdy koder stosuje co chce, co mu potrzeba. Czy jak dodaje kolejny algorytm, to on musi sie nim przejmowac? Nie! To co potrzebuje juz ma. Nawet jesli ja dolaczam nowy algorytm. > Oczywiście. C++ rozwiązuje problemy, które nie występują w > innych językach. Nie wiem. Wiem, ze niechcialbym aby spowodu dodania klasy/typu pochodnego typu algebraicznego, whatevera nagle mi kod nie kompilowal sie. To bylo moje zadanie. C++ nie rozwiazuje wszystkich problemow, ale czesc problemow jest w C++ wydumanych nie dlatego, ze one nie istnieja, ale dlatego, ze rozwiazanie jest gdzie indziej. Tak wlasnie uwazam, ze to nie projektabt typu wie co ja uzywam ale ja wiem. Wiec nie chce aby nasile ktos mi mowil, ze uzywajac 2 klas mam domyslanie obslugiwac, np. 10 pozostalych w drzewie, bo projektant cos nowego dodal. To musi byc umowa. I jezyk ma za zadanie wspomoc podpisywanie umowy, a nie podpisywac jaza mnie. Dlatego jeszcze raz powtarzam. Twoj pierwotny pomysl sypania bledami uwazam za nie dobry. Qrczakowe warningi przyjmuje jako pewna opcje, ale znowu jesli one beda interferowac z bledami to podziekuje. Pozdrawiam, Seweryn Habdank-Wojewodzki. |
|
#39
|
|
|
|
|
Witam
> Trzymajcie mnie. Spróbujmy inaczej: > - Scala to klon Pythona. > - e gdzie tam, nie można ich w ten sposób porównywać. > - co ty mówisz? że nie można porównywać Pythona i Scala. > - można, ale nie przez pryzmat tego, że Scala to klon > Pythona. Scala to język o zupełnie innej filozofii. I co dalej? Czemu porownujesz wizytora w C++ z ficzerami Scali, czy Ocamla? Toz, przeciez C++ ma inna filozofie. > Jak dla mnie eot. Zaczyna mnie to już nużyć. Znaczy co? Nie ma roznic? Czy sa oczywiste? Nie mow mi, ze te jezyki sa inne i dlatego nie mozna ich porownywac, bo C++ i Ocaml tez sa inne. Chyba zapytam specow o J(P)ythona, moze oni beda laskawi :-). Pozdrawiam, Seweryn Habdank-Wojewodzki. |
|
#40
|
|
|
|
|
Witam
> Od początku była mowa o ostrzeżeniu. W którymś poście przez pomyłkę > zrobił się z tego błąd. Najpierw byl blad podkreslony obecnoscia BOOST_STATIC_ASSERT, potem jedno zdanie, w ktorym bylo blad lub ostrzezenie, a potem juz tylko prosba o wprowadzenie bledu kompilacji. Tak jest moj scan rozmowy. Co wiecej nie krytykowalem postu o blad/ ostrzezenie. Tylko storpedowalem posty gdzie idea sie wzmocnila tylko do BLEDU. Pozdrawiam, Seweryn Habdank-Wojewodzki. |
|
#41
|
|
|
|
|
Seweryn Habdank-Wojewódzki wrote:
> I TU rozmywasz to co mowiles. TY mowiles o BLEDZIE. > Qrczak wskazal na mozliwosc OSTRZERZENIA. > Teraz wmawiasz mi, ze bredze, bo nie chce miec bledu. > O ostrzezeniu nie mowiles! Pisałem już wcześniej o ostrzeżeniu lub błędzie. Raz zapomniałem o słowach "lub czasop.." ee "lub błędzie" i już się czepiasz :). Zresztą nie o to chodzi. Chodzi o sam fakt, że kompilator zasygnalizował potencjalne problemy. U mnie domyślnie ostrzeżenie kończy się błędem kompilacji. > Mam typ algorytmu, moze byc zastosowany w wielu miejscach. > Ale kazdy koder stosuje co chce, co mu potrzeba. > Czy jak dodaje kolejny algorytm, to on musi sie nim przejmowac? > Nie! To co potrzebuje juz ma. Nawet jesli ja dolaczam nowy algorytm. > A po co miałby się przejmować. Pokazujesz niepowiązanie ze sobą problemy. Tam nie ma potrzeby stosowanie tam typów wariantowych. Pozdrawiam KK |
|
#42
|
|
|
|
|
Seweryn Habdank-Wojewodzki wrote:
>> Chodzi mi o to, że jak dodam Derived_3, ale nie obsłużę jej >> w kodzie to chciałbym dostać błąd: >> // dodałem nową klasę >> class Derived_3 : public Base > > Nie bardzo widze, aby to miało globalny sens. > > Pomyśl. Jest aplikacja i masz jakąś klasę bazową A. > Ludzie obługują tylko A, B i C w 1000 miejscach w kodzie. > B i C dziedziczą po A. Teraz dopisuję klasę D w jakimś > odległym miejscu. I co? Są problemy. > > 1. Skąd kompilator ma wiedzieć ze w jakims moim headerze > niekoniecznie inkludowanym jest klasa D. W normalnych językach nie ma headerów. BTW. po czym dziedziczy D? > 2. Nawet jesli includuje klasę D, to dlaczego projekt > ma sie nie kompilowac w 1000 miejscach, bo ja sobie > napisalem klasę D. Takie jest zadanie statycznego systemu typów. [..] > Zatem potrzebujesz miec mechanizm rejestracji klas uzytkowych w zaleznosci > od wersji. Poza tym wcale nie jest powiedziane, ze w kazdym z > 1000 miejsc, w ktorych masz "switch", jest tak naprawdę gotowy przyjac > nowa klase. > Czasami chcesz obsłuzyc tylko te, ktore sa wymienione zadne inne. > Więc taki automat raczej by mi szkodzil niz pomagał. > > 3. Jesli zatem musisz klase rejestrowac w czasie kompilacji, to czemu > nie uzyc, tego co język OFERUJE, np. listy typów, > szerzej o tym w kontekście wizytatora pisze Alexandrescu. Sewryn, przeczytaj w końcu o tym wizytatorze. *Ze zrozumieniem*! W tym Wizytatorze masz Dokładnie to Samo(tm). Tylko, że więcej kodu i kod jest porozrzucany po różnych miejscach. [...] > Jeszcze raz mówię, pomyśl globalnie. > 10 koderów, każdy tydzień nowa klasa (to jest i tak bardzo wolno). > Ale powiedzmy, że raz na tydzień masz klasę dziedziczoną z takiego > cuda, co powoduje niekompilowanie się kodu. > Teraz dorzucasz wersję debug, test i release, gdzie w release > nie masz niczego co naprawdę nie sprawdziłeś. > I po ostatnie. Masz miejsca gdzie celowo obsługujsze tylko dwie klasy. > > Jak to zrobisz? Przeczytaj jeszcze raz o Idiomie Wizytator ( (c) Maciek Sobczak). > Może. Mnie ten język iteresuje hobbistycznie do 100 lini kodu -- > nie widzę problemów o których piszę. Dynamicznie rozwijajacego sie > kodu powyzej 100 000 lini nie widziałem w ocamlu. Oczywiscie > w kontekscietego, ze raz na tydzien z powodu jakiejs klasy > musze w 1000 miejscach poprawaic kod. Czyli nie wychodze > przez tydzien z pracy do domu, bo Xiński napisał klasę, > a ja weekend mam zamknąc wersją ktora się kompiluje. Komililuje ale nie działa? Ciekawe... BTW. to jest problem zarządzania wersjami. Jak jest do kitu to "Święty Boże nie pomoże"... BTW2. Przeczytaj jeszcze raz o Idiomie Wizytator ( (c) Maciek Sobczak). >> się czy inni grupowicze, odczuwali potrzebę takiej >> konstrukcji w C++. > > Wszelakie automaty bardzo automatyczne są do bani. > A propozycja nie kompilowania sie kodu, bo Xiński coś > dodał i wszystko trzeba rzucać, w kąt, bo w 1000 miejscach kod się > nie kompiluje, bo switch rzuca błędy, to ja dziękuję. Przeczytaj jescze raz o Idiomie Wizytator ( (c) Maciek Sobczak). Tu jest to samo :) >> Ewentualnie ktoś coś może słyszał, że >> były takie propozycje w przyszłej wersji standardu. > > Oby nie. Oby tak. >> wychodzi na to, że swich + enum, ewentualnie wzorzec wizytor >> wszystkim wystarcza :) > > Nie wystarcza, tylko nie stwarza mnóstwa problemów, > ktore póki co widzę w Twoim wymaganiu. "Wzorzec" Wizytator stwarza dokłądnie takie same problemy! > To jest IMHO karygodne. Oh, wzorzec wizytator jest zatem karygodny :) pzdr |
|
#43
|
|
|
|
|
Seweryn Habdank-Wojewódzki wrote:
> Najpierw byl blad podkreslony obecnoscia BOOST_STATIC_ASSERT, > potem jedno zdanie, w ktorym bylo blad lub ostrzezenie, a potem juz > tylko prosba o wprowadzenie bledu kompilacji. > Tak. Pisałem, że obecnie radzę sobie za pomocą statycznej asercji. nie pierwszy i nie ostatni raz ułatwiłam mi ona pracę. > Tak jest moj scan rozmowy. Co wiecej nie krytykowalem postu o blad/ > ostrzezenie. > Tylko storpedowalem posty gdzie idea sie wzmocnila tylko do BLEDU. > Niech będzie ostrzeżenie, skoro to aż tak istotne. Dla mnie żadne różnica. Ja mam domyślnie -Werror. I trzeba mieć solidne uzasadnienie ( np. zewnętrzne biblioteki, kod wygenerowany przez flex/bison ), aby to wyłączyć per moduł. Pozdrawiam KK |
|
#44
|
|
|
|
|
Seweryn Habdank-Wojewódzki wrote:
>> Ponieważ wizytor to językowy idiom, wprowadzony po to aby >> ominąć ograniczenia np.: C++ i Javy. Przeczytaj >> wreszcie:[..] > > Czytalem nie raz. Nie chodzi o ograniczenia jezyka, czytaj dalej!!! Widać mało co zrozumiałeś. Przeczytaj jeszcze raz!!! >> > Jeszcze raz mówię, pomyśl globalnie. >> > 10 koderów, każdy tydzień nowa klasa (to jest i tak bardzo wolno). >> > Ale powiedzmy, że raz na tydzień masz klasę dziedziczoną z takiego >> > cuda, co powoduje niekompilowanie się kodu. >> >> Pomyślałem globalnie i zdecydowanie wolę błąd/ostrzeżenie >> kompilatora niż błąd u klienta :P. > > I TU rozmywasz to co mowiles. TY mowiles o BLEDZIE. A co to ma za znaczenie? BTW. standard mówi o "diagnostic", nie mówi o error ani warning. > Qrczak wskazal na mozliwosc OSTRZERZENIA. > Teraz wmawiasz mi, ze bredze, bo nie chce miec bledu. > O ostrzezeniu nie mowiles! 1. Mówił. 2. Bredzisz, bo najwyraźniej w ogóle nie rozumiesz o co chodzi. > Co do ostrzezenia, to zgadzam sie, moze byc przydatne, > ale blad w zadnym wypadku! Ach! Seweryn. Jeszcze raz... Sio, przeczytaj ze zrozumeiniem o wzorcu Visitor, ze szczególnym naciskiem na przeanalizowanie kiedy poleci błąd. Przeczytaj i przeanalizuj to sobie na spokojnie. > > Badz prosze precyzyjny, ok? Nie bądź, proszę, śmieszny, ok? >> > Wszelakie automaty bardzo automatyczne są do bani. >> > A propozycja nie kompilowania sie kodu, bo Xiński coś >> > dodał i wszystko trzeba rzucać, w kąt, bo w 1000 miejscach kod się >> > nie kompiluje, bo switch rzuca błędy, to ja dziękuję. >> >> Jaki automat? To się nazywa porządny system typów. > > Hmm... Pozadny system typow? > > Mam typ algorytmu, moze byc zastosowany w wielu miejscach. > Ale kazdy koder stosuje co chce, co mu potrzeba. > Czy jak dodaje kolejny algorytm, to on musi sie nim przejmowac? > Nie! To co potrzebuje juz ma. Nawet jesli ja dolaczam nowy algorytm. O czym Ty tu piszesz?!? Wygląda, że nic, ale to absolutnie nic, z całego tego wątku nie zrozumiałeś... >> Oczywiście. C++ rozwiązuje problemy, które nie występują w >> innych językach. > > Nie wiem. Wiem, ze niechcialbym aby spowodu dodania klasy/typu > pochodnego > typu algebraicznego, whatevera nagle mi kod nie kompilowal sie. To > bylo > moje zadanie. Jeśli w kodzie jest dziura widziana przez system typów języka, to ten kod *MA SIĘ NIE KOMPILOWAĆ*! > C++ nie rozwiazuje wszystkich problemow, ale czesc problemow jest w > C++ wydumanych nie dlatego, ze one nie istnieja, ale dlatego, ze > rozwiazanie > jest gdzie indziej. > > Tak wlasnie uwazam, ze to nie projektabt typu wie co ja uzywam ale ja > wiem. > Wiec nie chce aby nasile ktos mi mowil, ze uzywajac 2 klas mam > domyslanie > obslugiwac, np. 10 pozostalych w drzewie, bo projektant cos nowego > dodal. Boszsz. Jak zapisałeś sobie (w swoim kodzie), że idziesz wpoprzek drzewa klas, to masz iść przez pełen przekrój. Jak ktoś to drzewo zmeinił, to musisz to uwzględnić. Inaczej Twój kod jest błędny i to dobrze, że dostajesz błąd. > To musi byc umowa. I jezyk ma za zadanie wspomoc podpisywanie umowy, > a nie podpisywac jaza mnie. ??? > Dlatego jeszcze raz powtarzam. > Twoj pierwotny pomysl sypania bledami uwazam za nie dobry. Tego pomysłu wogóle nie rozumiesz. W ogóle nie wiesz o co biega. MArsz przeczytać jeszcze raz całość. Tym razem ze zrozumieniem. > Qrczakowe warningi przyjmuje jako pewna opcje, ale znowu jesli > one beda interferowac z bledami to podziekuje. Seweryn, zachowujesz się jak ta blondynak jadąc pod prąd po autostradzie. Zobacz, wszycy są zgodnie -- Maciek, Qrczak, Krzysiek i nawet ja. Pomyśl: coś w tym może jednak jest, czegoś nie zauważyłeś... pzdr |
|
#45
|
|
|
|
|
Seweryn Habdank-Wojewódzki wrote:
>> Trzymajcie mnie. Spróbujmy inaczej: >> - Scala to klon Pythona. >> - e gdzie tam, nie można ich w ten sposób porównywać. >> - co ty mówisz? że nie można porównywać Pythona i Scala. >> - można, ale nie przez pryzmat tego, że Scala to klon >> Pythona. Scala to język o zupełnie innej filozofii. > > I co dalej? Czemu porownujesz wizytora w C++ z ficzerami Scali, > czy Ocamla? Toz, przeciez C++ ma inna filozofie. Boszsz... Bo te ficzery rozwiązują problem czyściej, lepiej, miniej błędogennie. >> Jak dla mnie eot. Zaczyna mnie to już nużyć. > > Znaczy co? Nie ma roznic? Czy sa oczywiste? Znaczy wyskoczyłeś z tą Scalą i Pythonem jak Filip z konopii. > Nie mow mi, ze te jezyki sa inne i dlatego nie mozna ich porownywac, > bo C++ i Ocaml tez sa inne. Zacznij czytać ze zrozumieniem. Ktróego słowa z 3: "w ten sposób" nie łapiesz? pzdr |
|
|
|
|
| Podobne wątki | |
| Ciekawostka przyrodnicza Dziś zostałam uraczona chłodnikiem "litewskim" z... krewetkami, w zastępstwie raków, chyba. Hmmm... :/ |
|
| Ciekawostka przyrodnicza Regulamin Promocji "Rachunek dyskretny" # Usługa pozwala Abonentowi na rozszerzenie zakresu zachowania w poufności informacji o połączeniach wykonywanych z numeru... |
|
| ciekawostka przyrodnicza > NH4(+) = NH3(+) + H ze niby wodor atomowy powstaje?? dziwne... |
|
| ciekawostka przyrodnicza Jestem dumnym posiadaczem dosyć wiekowego ale do tej pory spisującego się bez zarzutów kompa. Mój zestaw to Plyta główna Acorp 6bx67 z chipsetem 440BX Procesor Celeron 333,... |
|
| Ciekawostka przyrodnicza Co wam to przypomina? (reklama z Gadu-gadu - 17 KB) [..] |
|
|
Czasy w strefie GMT. Teraz jest 14:46. | Privacy Policy
|