makrogenerator MP

Tematy

biblia


"Marcin Stefaniak" <mat@gazeta.SKASUJ-TO.plwrote:
Tak mi się w każdym razie wydaje.


Nie tu chodzi o cos innego. Duzo bardziej fundamentalnego.

Roznica jest duzo bardziej fundamentalna. C++ nie ma parametrycznego
polimorfizmu tylko makrogenerator, ktory niejako przypadkowo okazal sie miec
funkcjonalnosc rownowazna parametrycznemu polimorfizmowi.

W paramatrycznym polimorfizmie istotne jest to, ze mamy _jedna_ dostatecznie
bogata funkcje o porzadnych wlasnosciach.

W C++ dostajemy "szablon funkcji", z ktorego kompilator moze nam usluznie
wygenerowac konkretna funkcje (ale nie wygeneruje, np. kiedy napisalismy
specjalna wersje z reki).

Standardowy parametryczny polimorfizm ma ladna interpretacje kategoryjna
(np. w modelach PER) - jest to faibracja, w ktorej morfizmy sa _pojedynczym_
zyjatkiem (np. w PER _jedna_ klasa rownowaznosci), nie zas kolekcja zyjatek,
z ktorej wyciagamy to co nam jest potrzebebne po typie.


dlaczego dla ludzi o mocnych nerwach? :-)


Nie chce isc do pierdla, kiedy Sektor popelni samobojstwo dowiedziawszy sie
kolejnej straszliwej prawdy...

mp



"Sektor van Skijlen" <ethou@guess.if.gmail.com.is.valid.or.invalid
wrote:


| Roznica jest duzo bardziej fundamentalna. C++ nie ma parametrycznego
| polimorfizmu tylko makrogenerator, ktory niejako przypadkowo okazal sie
miec
| funkcjonalnosc rownowazna parametrycznemu polimorfizmowi.

lol ;) merytoryczne aż do bólu.


Przeciez dalej to uzasadniam. To co jest w C++ to _nie_ jest polimorfizm
parametryczny (a przynajmniej ja nie potrafie tego interpretowac jak
polimorfizmu parametrycznego).

Tylko jeszcze raz uwazaj. Ja nie wartosciuje tutaj szablonow z C++. To Ty
jestes uprzejmy odbierac w bledny sposob to co pisze i zwiazywac podawane
fakty z krytyka C++ (choc moim zdaniem sluszna, ale ten aspekt mnie
kompletnie tutaj nie interesuje).


| W paramatrycznym polimorfizmie istotne jest to, ze mamy
| _jedna_ dostatecznie bogata funkcje o porzadnych wlasnosciach.

Na tej samej zasadzie można udowadniać, że polimorfizm w programowaniu
obiektowym polega na tym, że mamy _jedną_ dostatecznie bogatą klasę o
porządnych właściwościach.


Przeciez dalej to uzasadnilem. To nie w ogole nie jest dowod czegokolwiek.

Ja uzywam potocznego jezyka, ale tylko jako plaszczyka dla pewnych
matematycznych pojec. W szczegolnosci, kiedy pisze to powyzsze mam w glowie
dobry model (a raczej klase modeli) pewnego rodzaju polimorficznego rachunku
lambda.


| W C++ dostajemy "szablon funkcji", z ktorego kompilator moze nam
usluznie
| wygenerowac konkretna funkcje (ale nie wygeneruje, np. kiedy napisalismy
| specjalna wersje z reki).

Zawsze mnie bawiło, jak ktoś mówił o "generowaniu funkcji" przez


kompilator.

Oczywiscie, ja sie nieslusznie odwoluje do implementacji jezyka. Ale tylko
dlatego, ze jest to w tym przypadku dobrym zrozumieniem semantyki (ktorej "z
reki" formalnie nie jestem w stanie podac ; sorry, semantyka szablonow z C++
jest mocno niestandardowa).


| Standardowy parametryczny polimorfizm ma ladna interpretacje kategoryjna
| (np. w modelach PER) - jest to faibracja, w ktorej morfizmy sa
_pojedynczym_
| zyjatkiem (np. w PER _jedna_ klasa rownowaznosci), nie zas kolekcja
zyjatek,
| z ktorej wyciagamy to co nam jest potrzebebne po typie.

Tłumacząc ten śmieszny bełkot na normalny język:
w Javie aby można było zastosować dany typ jako parametr wzorca, to musi
mieć on na starcie odpowiednie właściwości gwarantowane


Przeciez gdybys zadal sobie choc odrobine trudu, szybko bys odgadl, ze na
pewno powyzszy fragment nie jest akurat o tym.

A odgadl bys z tad, ze problem o ktorym piszesz wczesniej podniosl Marcin
Stefaniak (to, ze w Javie mamy (F)bounded pp) i ja wlasnie na ten post
odpowiadalem, ze moim zdaniem problem lezy duzo nizej.

mp

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • wpserwis.htw.pl
  • Powered by MyScript