-
X-Received: by 10.140.95.85 with SMTP id h79mr1977qge.25.1415788902162; Wed, 12 Nov
2014 02:41:42 -0800 (PST)
X-Received: by 10.140.95.85 with SMTP id h79mr1977qge.25.1415788902162; Wed, 12 Nov
2014 02:41:42 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
hl2no403809igb.0!news-out.google.com!u1ni9qah.0!nntp.google.com!u7no1045797qaz.
1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Wed, 12 Nov 2014 02:41:42 -0800 (PST)
In-Reply-To: <2...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=78.30.87.108;
posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 78.30.87.108
References: <5...@g...com>
<a...@4...com>
<6...@g...com>
<7...@g...com>
<2...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <1...@g...com>
Subject: Re: Makra higieniczne w jezyku Scheme
From: firr <p...@g...com>
Injection-Date: Wed, 12 Nov 2014 10:41:42 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Xref: news-archive.icm.edu.pl pl.comp.programming:206939
[ ukryj 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
- 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
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-08 Belka
- 2024-11-09 pierdolec na punkcie psa
- 2024-11-09 Warszawa => Sales Executive <=
- 2024-11-09 Wrocław => SAP BTP Consultant (mid/senior) <=
- 2024-11-09 Warszawa => ECM Specialist / Consultant <=
- 2024-11-09 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-10 TVN donosi: Obywatelskie zatrzymanie policjanta (nie na służbie)
- 2024-11-08 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Szczecin => Key Account Manager (ERP) <=
- 2024-11-08 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-08 Wrocław => Senior PHP Symfony Developer <=
- 2024-11-08 Warszawa => QA Engineer <=
- 2024-11-08 Warszawa => QA Inżynier <=
- 2024-11-08 Warszawa => Key Account Manager <=