Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pp:21:laboratoare:racket:legare [2021/03/22 15:32]
bot.pp
pp:21:laboratoare:racket:legare [2021/03/23 10:05] (current)
andrei.olaru [Referințe]
Line 22: Line 22:
 **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}%%''​ {{D :​20:​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}%%''​ {{domeniu_vizibilitate.png?​800 |}}
  
 ===== Context computaţional ===== ===== Context computaţional =====
Line 32: Line 32:
 **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)}%%''​
  
-![Test Image 1][./​img-ocw/​context.png]+{{context.png?800 |}}
  
 ===== Legare ===== ===== Legare =====
Line 70: Line 70:
 Legarea statică creează un nou domeniu de vizibilitate (scope) pentru o variabilă, în funcţie de contextul lexical al programului (partea programului care este evaluată), așa că în literatura de specialitate se mai numește **lexical scoping** / **lexical binding** Legarea statică creează un nou domeniu de vizibilitate (scope) pentru o variabilă, în funcţie de contextul lexical al programului (partea programului care este evaluată), așa că în literatura de specialitate se mai numește **lexical scoping** / **lexical binding**
  
-In racket ''​%%let%%''​ face legare statică: {{:​20:​laboratoare:​racket:​lexical-binding-example.png?​800 |}}+In racket ''​%%let%%''​ face legare statică: {{lexical-binding-example.png?​800 |}}
  
 ===== Legare dinamică ===== ===== Legare dinamică =====
Line 80: Line 80:
 În Scheme (precursorul lui Racket) ''​%%define%%''​ face legare dinamică: În Scheme (precursorul lui Racket) ''​%%define%%''​ face legare dinamică:
  
-{{ :​20:​laboratoare:​racket:​dynamic-binding-example.png?​800 |}}+{{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.
Line 194: Line 194:
 ===== Resurse ===== ===== Resurse =====
  
-  ​* [[https://​docs.racket-lang.org/​reference/​let.html|Documentație Racket]] +  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​21/​laboratoare/​racket/​legare.zip|Exerciții propuse]] 
-  ​* [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​21/​laboratoare/​racket/​binding.zip|Exerciții ​rezolvate și propuse]] +  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​21/​laboratoare/​racket/​legare-sol.zip|Soluții]] 
-  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​21/​laboratoare/​racket/​binding-sol.zip|Soluții]] +  * [[https://​github.com/​cs-pub-ro/​PP-laboratoare/​raw/​master/​racket/​legare/legare-cheatsheet.pdf|Cheatsheet Laboratorul 4]]
-  * [[https://​github.com/​cs-pub-ro/​PP-laboratoare/​raw/​master/​racket/​functionale/functionale-cheatsheet.pdf|Cheatsheet Laboratorul 4]]+
  
 ===== Referințe ===== ===== Referințe =====
  
 +  * [[https://​docs.racket-lang.org/​reference/​let.html|Documentație Racket]]
   * [[https://​www.cs.oberlin.edu/​~bob/​cs275.spring14/​Examples%20and%20Notes/​February/​Februrary%2028/​Lexical%20and%20Dynamic%20Binding.pdf|Lexical Binding]]   * [[https://​www.cs.oberlin.edu/​~bob/​cs275.spring14/​Examples%20and%20Notes/​February/​Februrary%2028/​Lexical%20and%20Dynamic%20Binding.pdf|Lexical Binding]]
   * [[https://​www.emacswiki.org/​emacs/​DynamicBindingVsLexicalBinding|legare statica vs legare dinamica]]   * [[https://​www.emacswiki.org/​emacs/​DynamicBindingVsLexicalBinding|legare statica vs legare dinamica]]
pp/21/laboratoare/racket/legare.1616419928.txt.gz · Last modified: 2021/03/22 15:32 by bot.pp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0