-
Data: 2011-10-16 15:26:11
Temat: Re: lambda i clojures
Od: bartekltg <b...@o...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2011-10-16 10:05, Piotr Chamera pisze:
> 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
>
> Ż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.
Zmienne statyczne w funkcji?
http://en.wikipedia.org/wiki/Static_variable
#include <stdio.h>
void func() {
static int x = 0; // x is initialized only once across three
calls of func()
printf("%d\n", x); // outputs the value of x
x = x + 1;
}
int main(int argc, char * const argv[]) {
func(); // prints 0
func(); // prints 1
func(); // prints 2
return 0;
}
Robi dokładnie to, co Twój przykład.
pzdr
bartekltg
Następne wpisy z tego wątku
- 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
- 16.10.11 17:56 Piotr Chamera
- 16.10.11 20:19 Bronek Kozicki
- 17.10.11 04:38 Maciej Pilichowski
- 17.10.11 05:17 p...@p...onet.pl
- 17.10.11 05:25 p...@p...onet.pl
- 17.10.11 06:32 Piotr Chamera
- 17.10.11 07:18 Stachu 'Dozzie' K.
- 17.10.11 07:20 Stachu 'Dozzie' K.
Najnowsze wątki z tej grupy
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
Najnowsze wątki
- 2025-12-06 [OT] Kup!
- 2025-12-06 Laptop z miejscem na dwa dyski i 32 GiB DDR4
- 2025-12-05 podatek od marzeń
- 2025-12-05 Jewgienij Tkaczew czyli dobre imię Piłsudczykowskiej Sanacji trafi na wokandę? [Polska była państwem nazistowskim]
- 2025-12-05 Warszawa => Architekt rozwiązań (Workday) - Legal Systems <=
- 2025-12-05 Warszawa => Konsultant Microsoft Dynamics AX/365 SCM Consultant - Serv
- 2025-12-05 Warszawa => Microsoft Dynamics AX/365 SCM Consultant - Service & Suppo
- 2025-12-05 Bieruń => Junior Dynamics 365 Finance Consultant <=
- 2025-12-05 Warszawa => Konsultant ERP Microsoft Dynamics 365 Commerce <=
- 2025-12-05 Wrocław => React Developer with knowledge of C++ <=
- 2025-12-05 Dieta dla prątkowców
- 2025-12-05 Wrocław => Programista React ze znajomością C++ <=
- 2025-12-05 Bieruń => Tester Automatyzujący (Junior/Mid) <=
- 2025-12-05 Warszawa => Konsultant Microsoft Dynamics 365 Finance <=
- 2025-12-05 Białystok => Dynamics 365 Commerce/POS Developer <=




Ile kosztują tanie mieszkania w polskich metropoliach?