-
Data: 2014-11-12 11:41:42
Temat: Re: Makra higieniczne w jezyku Scheme
Od: firr <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu środa, 12 listopada 2014 11:19:17 UTC+1 użytkownik g...@g...com
napisał:
> W dniu środa, 12 listopada 2014 11:00:53 UTC+1 użytkownik firr napisał:
>
> > jawaskrypt ciekawy jezyk, nieststy ciagle nie mam sily sie go nauczyc, tylko
czasem wpadaja mi w oko kwiatki ktore rozumiem albo ktorych nie rozumiem
> >
> > mialbys moze chwile by wyjasnic mi co tutaj sie
> > przykladowo dzieje
> >
> > io.sockets.on("connection", function (socket) {
> > socket.unit = null;
> > socket.on("connectServer", function (data, reply) {
> > var unit = new IB.Player(data);
> >
> > worldHandler.addUnit(unit);
> > }
> > });
> >
> > mniej chodzi mi o sementyke ale o skladnie
> > co to jest? cialo funkcji przekazywane jako argument? a dalej w srodku z tym
socket.on to samo? sa to po prostu skrotowe zapisy by nie pisac 3 cial funkcji w
trzech miejscach czy cos wiecej?
>
> jest mniej wiecej tak jak mowisz. (jednak zamiast powiedziec, ze "cialo funkcji
> jest przekazywane jako argument", raczej bym powiedzial, ze "funkcja jest
> przekazywana jako argument")
> zgodnie z oczekiwaniem, moglbys alterniatywnie zapisac:
>
> function connectServerHandler(data, reply) {
> var unit = new IB.Player(data);
> worldHandler.addUnit(unit);
> }
>
> function connectionHandler(socket) {
> socket.unit = null;
> socket.on("connectServer", connectServerHandler);
> }
>
> io.sockets.on("connection", connectionHandler);
>
> nie ma duzej roznicy pomiedzy takim kodem, a np. kodem w C
> przekazujacym wskazniki do funkcji.
>
> w ogolnosci jednak sila ekspresji javascriptu jest wieksza,
> niz sila ekspresji C, poniewaz mozesz w js tworzyc tzw. "domkniecia"
> ("closures"), czyli funkcje ktore przechowuja swoje lokalne srodowisko.
> klasyczny przyklad wyglada tak:
>
> function make_counter() {
> var counter = 0;
> return function() { return ++counter; }
> }
>
> var c = make_counter();
>
> print c(); // 1
> print c(); // 2
> print c(); // 3
>
> w C mozesz oczywiscie uzyskac funkcjonalnie podobny efekt, przekazujac
> do funkcji osobna strukture (wiele bibliotek ma takie interfejsy, ze
> pobieraja wskaznik na funkcje i wskaznik void *, ktory funkcja
> ma sobie sama rzutowac do odpowiedniego typu)
swietnie,
moge dorzucic pare uwag
1. nazwa handler tutaj jakiej uzywasz jest na pewno zła - powinno to sie nazywac
raczej OnConnection, OnConnectServer - to słowo handeler wprowadza jezykową pianę i
wydłuza 'językowo' kod a im krotszytym lepszy
2. wiesz moze co te 3 funkcje wlasciwie robia?
to pierwsze jest jakby jasne na sygnel polaczenia ustawia handler dla eventu
connectServer - ale dlaczego to tak jest? tego jakos nie pojalem, to piwrwsze to jest
pierwsze polaczenie a to drugie to sa eventy dla poszczegolnych przychodzących
pakietow or what?
3. jestes pewien ze to z closures jest to dzialajacy kod? nie do konca zrozumielem
jak to dziala acz musze troche dluzej popatrzec
4. system callbackow czy 'przekazywania funkcji do funkcji' w c jest raczej slaby,
kiedys pisalem ntt i jeszcze kiedys pewnie napisze
(ale nie teraz bo jest to glebszy temat)
Następne wpisy z tego wątku
- 12.11.14 12:11 g...@g...com
- 12.11.14 12:13 firr
- 12.11.14 12:20 g...@g...com
- 12.11.14 12:22 firr
- 12.11.14 12:31 firr
- 12.11.14 12:34 firr
- 13.11.14 11:40 firr
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 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
Najnowsze wątki
- 2025-01-06 Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 2025-01-06 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-01-06 Do IO i innych elektrooszolomow, tu macie prawdziwe smrody
- 2025-01-06 Białystok => Full Stack .Net Engineer <=
- 2025-01-06 Kraków => Business Development Manager - Network and Network Security
- 2025-01-06 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-06 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-06 Lublin => Programista Delphi <=
- 2025-01-06 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-06 śnieg
- 2025-01-05 Żarówka do lampy z czujnikiem ruchu
- 2025-01-05 Rozkręcają się
- 2025-01-04 pozew za naprawę sprzętu na youtube
- 2025-01-04 gasik
- 2025-01-04 13. Raport Totaliztyczny: Powszechna Deklaracja Praw Człowieka Nie Chroni Przed Wyzyskiem Ani Przed Eksploatacją