Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pp:llambdacalc [2019/04/08 13:42]
dmihai [Evaluare]
pp:llambdacalc [2020/02/05 15:50] (current)
dmihai [Exerciții]
Line 18: Line 18:
   * **variabilă**   * **variabilă**
     * $ x$ - unde $ x$ este un nume/simbol     * $ x$ - unde $ x$ este un nume/simbol
-  * **abstracție**/​**funcție**+  * **abstracție** / **funcție**
     * $\lambda x . E$ - unde $ x$ este un nume/​simbol,​ iar $ E$ este o expresie lambda     * $\lambda x . E$ - unde $ x$ este un nume/​simbol,​ iar $ E$ este o expresie lambda
   * **aplicație**   * **aplicație**
Line 47: Line 47:
 ==== Evaluare ==== ==== Evaluare ====
  
-Evaluarea unei expresii lambda constă într-o serie succesivă de transformări (redenumiri de variabile, substituții de variabile cu alte expresii). Un pas de evaluare constă într-o singură [[https://​en.wikipedia.org/​wiki/​Lambda_calculus#​%CE%B2-reduction|substituție de variabile]] (posibil cu [[https://​en.wikipedia.org/​wiki/​Lambda_calculus#​%CE%B1-conversion|redenumire]]). Aplicând repetat pașii de evaluare putem obține un rezultat.+Evaluarea unei expresii lambda constă într-o serie succesivă de transformări (redenumiri de variabile, substituții de variabile cu alte expresii). Un pas de evaluare constă într-o singură [[https://​en.wikipedia.org/​wiki/​Lambda_calculus#​%CE%B2-reduction|substituție de variabile]] (posibil cu [[https://​en.wikipedia.org/​wiki/​Lambda_calculus#​%CE%B1-conversion|redenumire]]). Aplicând repetat pașii de evaluare putem obține un rezultat. Găsiți mai multe informații despre evaluare [[:​pp:​lambda#​the_semantics_of_the_lambda_calculus|aici]]. 
 + 
 +O //strategie de evaluare// este un set de reguli de a aplica substituții. Distingem între **evaluare aplicativă** și **evaluare normală**. Informal, evaluarea aplicativă evaluează mai întâi argumentele,​ apoi expresia cu totul, iar evaluarea normală evaluează întâi expresia, pasând funcțiilor argumente neevaluate.
  
 <​note>​ <​note>​
-Nu orice expresii lambda poate fi evaluată până la capăt. Pentru unele expresii, evaluarea poate cicla. ​Deasemenea, există expresii pe care, deși o strategie de evaluare produce un rezultat, o altă strategie poate să cicleze.+Nu orice expresii lambda poate fi evaluată până la capăt. Pentru unele expresii, evaluarea poate cicla. 
 + 
 +De asemenea, există expresii pe care, deși o strategie de evaluare produce un rezultat, o altă strategie poate să cicleze.
 </​note>​ </​note>​
- 
-O //strategie de evaluare// este un set de reguli de a aplica substituții. Distingem între **evaluare aplicativă** și **evaluare normală**. Informal, evaluarea aplicativă evaluează mai întâi argumentele,​ apoi expresia cu totul, iar evaluarea normală evaluează întâi expresia, pasând funcțiilor argumente neevaluate. 
  
 Pentru definiții formale și exemple ale celor două strategii de evaluare, mai multe informații găsiți [[:​pp:​lambda#​step_2_reduction_order_s|aici]]. Pentru definiții formale și exemple ale celor două strategii de evaluare, mai multe informații găsiți [[:​pp:​lambda#​step_2_reduction_order_s|aici]].
Line 79: Line 81:
 Urmăriți regulile de [[http://​ocw.cs.pub.ro/​ppcarte/​doku.php?​id=pp:​lambda#​the_semantics_of_the_lambda_calculus|aici]] și comentariile din cod. Urmăriți regulile de [[http://​ocw.cs.pub.ro/​ppcarte/​doku.php?​id=pp:​lambda#​the_semantics_of_the_lambda_calculus|aici]] și comentariile din cod.
 </​note>​ </​note>​
 +
 +{{:​pp:​laborator_7_-_schelet.zip|Laborator 7 - Schelet}}\\