-
Data: 2011-10-16 09:01:00
Temat: Re: lambda i clojures
Od: " " <f...@g...SKASUJ-TO.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Piotr Chamera <p...@p...onet.pl> napisał(a):
> W dniu 2011-10-16 07:25, f...@g...SKASUJ-TO.pl pisze:
> > Piotr Chamera<p...@p...onet.pl> napisaĹ(a):
> >> Closure to taka funkcja powiÄ zana ze Ĺrodowiskiem, w ktĂłrym zostaĹa
> >> zdefiniowana. N.p.:
> >>
> >> (let ((licznik 0))
> >> (defun nastÄpny () (setf licznik (1+ licznik))))
> >>
> >> CL-USER> (nastÄpny)
> >> 1
> >>
> >> CL-USER> licznik
> >> Unbound variable: LICZNIK
> >> [Condition of type UNBOUND-VARIABLE]
> >>
> >> CL-USER> (nastÄpny)
> >> 2
> >>
> >> W Wikipedii jest to caĹkiem dobrze opisane:
> >> http://en.wikipedia.org/wiki/Closure_%28computer_sci
ence%29
> >
> > a czym sie rozni od zwyklej normalnej 'niepowiazanej' funkcji?
> > w tym prztkladzie wyzej nie rozumiem co to jest i co
> > to ma ilustrowac:
> >
> >> CL-USER> licznik
> >> Unbound variable: LICZNIK
> >> [Condition of type UNBOUND-VARIABLE]
>
> Ĺťe âlicznikâ nie jest dostÄpny globalnie - po wyjĹciu z zasiÄgu
> konstrukcji âletâ przestaĹ byÄ widoczny, ale po wywoĹaniu funkcji
> nadal jest dostÄpny - to fragment Ĺrodowiska, w ktĂłrym funkcja byĹa
> definiowana, ktĂłry zostaĹ przez niÄ przechwycony. Nie moĹźe byÄ
> odĹoĹźony na stosie, jest zewnÄtrzny w stosunku do ciaĹa funkcji i moĹźe
> przenosiÄ informacjÄ pomiÄdzy jej wywoĹaniami. Ĺťeby to zrobiÄ w C
> trzeba by pewnie zaalokowaÄ jakiĹ obiekt na stercie i przekazaÄ
> do funkcji wskaĹşnik do niego.
>
> Po rozszerzeniu pierwszego przykĹadu o drugÄ operacjÄ na
> liczniku mamy najprostszy obiekt z dwiema operacjami na nim
> i enkapsulacjÄ jego wewnÄtrznego stanu.
>
> (let ((licznik 0))
> (defun nastÄpny () (setf licznik (1+ licznik)))
> (defun poprzedni () (setf licznik (1- licznik))))
>
denerwuje mnie to niepowiernie bo nic z tego nie rozumiem,
np w c funkcja jest definiowana tylko raz i dotego w globalnym
kontekscie wiec powiedzmy ze to c nie dotyczy
ale czy tam gdzie tego sie uzywa taka funkcje definiuje sie kilka
razy w roznych kontekstach? czy kazda z nich przechwytuje ten kontekst
raczej przez referencje czy przez wartosc? czy np jesli jest 5 definicji
to te wspolne przechwycine dane sa wspolne dla tych definicji?
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 16.10.11 10:09 Piotr Chamera
- 16.10.11 11:19 Piotr Chamera
- 16.10.11 12:24
- 16.10.11 12:52 Piotr Chamera
- 16.10.11 13:15
- 16.10.11 13:37 Edek
- 16.10.11 13:46 Piotr Chamera
- 16.10.11 14:17 Stachu 'Dozzie' K.
- 16.10.11 14:27
- 16.10.11 14:49 Piotr Chamera
- 16.10.11 15:26 bartekltg
- 16.10.11 16:22 Piotr Chamera
- 16.10.11 16:43 Bronek Kozicki
- 16.10.11 16:44 Bronek Kozicki
- 16.10.11 17:11
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-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=
- 2025-01-31 Bieruń => Team Lead / Tribe Lead FrontEnd <=
- 2025-01-31 Błonie => Administrator systemów <=
- 2025-01-31 Duńskie precedensy w sprawie odsprzedawania terytoriów USA [Wyspy Dziewicze (1917)]
- 2025-01-31 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-31 Katowice => Key Account Manager (ERP) <=
- 2025-01-31 kupujmy części