Differences

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

Link to this comparison view

pp:23:laboratoare:racket:legare [2023/03/18 23:03]
bot.pp created
pp:23:laboratoare:racket:legare [2023/03/21 14:37] (current)
bot.pp
Line 23: Line 23:
 **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}%%''​ {{domeniu_vizibilitate.png?​800 |}}+**Exemplu:​** Domeniul de vizibilitate pentru variabila ''​%%a%%''​ este format din liniile de cod ''​%%{9,​ 10, 11, 12, 13, 14}%%''​ {{:pp:media:domeniu_vizibilitate.png?​600 |}}
  
 ===== Context computaţional ===== ===== Context computaţional =====
Line 33: Line 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)}%%''​
  
-{{context.png?​800 |}}+{{:pp:media:context.png?​500 |}}
  
 ===== Legare ===== ===== Legare =====
Line 71: Line 71:
 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**.
  
-În Racket ''​%%let%%''​ face legare statică: {{lexical-binding-example.png?​800 |}}+În Racket ''​%%let%%''​ face legare statică: {{:pp:media:lexical-binding-example.png?​600 |}}
  
 ===== Legare dinamică ===== ===== Legare dinamică =====
Line 81: Line 81:
 În Scheme (precursorul lui Racket) ''​%%define%%''​ face legare dinamică: În Scheme (precursorul lui Racket) ''​%%define%%''​ face legare dinamică:
  
-{{dynamic-binding-example.png?​800 |}}+{{:pp:media:dynamic-binding-example.png?​600 |}}
  
 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 196: Line 196:
  
   * [[https://​docs.racket-lang.org/​reference/​let.html|Documentație Racket]]   * [[https://​docs.racket-lang.org/​reference/​let.html|Documentație Racket]]
-  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​22/​laboratoare/​racket/​legare-schelet.zip|Schelet]] +  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​23/​laboratoare/​racket/​legare-schelet.zip|Schelet]] 
-  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​22/​laboratoare/​racket/​legare-solutii.zip|Soluții]]+  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​23/​laboratoare/​racket/​legare-solutii.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/​legare/​legare-cheatsheet.pdf|Cheatsheet Laboratorul 4]]
  
pp/23/laboratoare/racket/legare.1679173430.txt.gz · Last modified: 2023/03/18 23:03 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