Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
Urmatoarea versiune | Versiuni anterioare | ||
20:laboratoare:racket:legare [2020/03/08 11:40] Radu Iacob creat |
20:laboratoare:racket:legare [2020/03/18 18:32] (curent) Mihai Nan |
||
---|---|---|---|
Linia 25: | Linia 25: | ||
**Domeniul de vizibilitate** al unei variabile este mulțimea punctelor din program în care variabila este vizibilă. Cu alte cuvinte, domeniul de vizibilitate al variabilei x este reprezentat de porțiunile din program în care aceasta poate fi accesată (este vizibilă). | **Domeniul de vizibilitate** al unei variabile este mulțimea punctelor din program în care variabila este vizibilă. Cu alte cuvinte, domeniul de vizibilitate al variabilei x este reprezentat de porțiunile din program în care aceasta poate fi accesată (este vizibilă). | ||
- | **Exemplu:** Domeniul de vizibilitate pentru variabila a este format din liniile de cod ''{9, 10, 11, 12, 13, 14}'' {{ :19:laboratoare:racket:domeniu_vizibilitate.png?800 |}} | + | **Exemplu:** Domeniul de vizibilitate pentru variabila a este format din liniile de cod ''{9, 10, 11, 12, 13, 14}'' {{ :20:laboratoare:racket:domeniu_vizibilitate.png?800 |}} |
== Context computaţional == | == Context computaţional == | ||
Linia 33: | Linia 33: | ||
**Exemplu:** Pe linia 6 contextul computaţional este: ''{(a 2) (b 32) (s P)}'' | **Exemplu:** Pe linia 6 contextul computaţional este: ''{(a 2) (b 32) (s P)}'' | ||
- | {{ :19:laboratoare:racket:context.png?800 |}} | + | {{ :20:laboratoare:racket:context.png?800 |}} |
Linia 70: | Linia 70: | ||
In racket ''let'' face legare statică: | In racket ''let'' face legare statică: | ||
- | {{ :19:laboratoare:racket:lexical-binding-example.png?800 |}} | + | {{ :20:laboratoare:racket:lexical-binding-example.png?800 |}} |
== Legare dinamică == | == Legare dinamică == | ||
Linia 78: | Linia 78: | ||
În Racket ''define'' face legare dinamică: | În Racket ''define'' face legare dinamică: | ||
- | {{ :19:laboratoare:racket:dynamic-binding-example.png?800 |}} | + | {{ :20:laboratoare:racket:dynamic-binding-example.png?800 |}} |
Observați că același apel de funcție cu aceiași parametri întoarce rezultate diferite în funcție de contextul global => **introduce efecte laterale**, de aceea editarea contextului global cu define este interzisă în Racket. | Observați că același apel de funcție cu aceiași parametri întoarce rezultate diferite în funcție de contextul global => **introduce efecte laterale**, de aceea editarea contextului global cu define este interzisă în Racket. | ||
Linia 185: | Linia 185: | ||
* [[https://docs.racket-lang.org/reference/let.html|Documentație racket]] | * [[https://docs.racket-lang.org/reference/let.html|Documentație racket]] | ||
* {{:20:laboratoare:racket:legare-ex.zip|Exerciții}} | * {{:20:laboratoare:racket:legare-ex.zip|Exerciții}} | ||
+ | * {{:20:laboratoare:racket:solutii.zip |Soluții}} | ||
* {{:20:laboratoare:racket:legare-cheatsheet.pdf|Cheatsheet}} | * {{:20:laboratoare:racket:legare-cheatsheet.pdf|Cheatsheet}} | ||