Differences

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

Link to this comparison view

pp:23:laboratoare:racket:legare [2023/03/19 12:42]
bot.pp
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.
pp/23/laboratoare/racket/legare.1679222520.txt.gz · Last modified: 2023/03/19 12:42 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