Vous êtes sur la page 1sur 2

Introducere

 Lazy Evaluation este adesea combinată cu memorarea.

 Lazy Evaluation poate duce la reducerea amprentei memoriei, deoarece valorile sunt create
atunci când este necesar.

 Currying este utilă atât în setările practice, cât și în cele teoretice.

 Currying oferă o modalitate de a studia funcții cu mai multe argumente în modelele teoretice
mai simple, care oferă doar un singur argument.

Scurt istoric

Lazy Evaluation a fost introdusă pentru calculul lambda de către Christopher Wadsworth . Pentru limbile
de programare, a fost introdus de către Peter Henderson și James H. Morris, de Daniel P. Friedman și
David S. Wise.

Numele "currying", inventat de Christopher Strachey în 1967, este o referință la loggerul Haskell Curry.
Denumirea alternativă "Schönfinkelisation" a fost propusă ca o referire la Moses Schönfinkel . În
contextul matematic, principiul poate fi urmărit în funcțiune, în 1893 de către Frege.

 Lazy Evaluation - În teoria limbajului de programare, evaluarea “leneșă”, sau apelul după
necesitate reprezintă o strategie de evaluare care întârzie evaluarea unei expresii până când
valoarea acesteia este necesară (evaluare nestricătoare) și care evită, de asemenea, evaluări
repetate (partajare). Partajarea poate reduce timpul de funcționare al anumitor funcții printr-un
factor exponențial față de alte strategii de evaluare nestructurale, cum ar fi apelul după nume.

 Currying - În matematică și informatică, este tehnica de traducere a evaluării unei funcții care
necesită mai multe argumente în evaluarea unei secvențe de funcții, fiecare cu un singur
argument.

Avantajele Lazy Evaluation

 Abilitatea de a defini fluxul de control (structuri) ca abstracții înlo c de primitive.

 Abilitatea de a defini structuri de date potențial infinite. Acest lucru permite o implementare
mai simplă a unor algoritmi.

 Performanța crește prin evitarea calculelor inutile și a condițiilor de eroare în evaluarea


expresiilor combinate.

Avantajele Currying

 Funcțiile curry sunt foarte utile atunci cînd sunt parametri impliciți.

 Currying ne permite în Scala să utilizăm un flux,fără să ne gîndim la închiderea a resurselor


corespunzătoare.

 Putem utiliza curry, dacă dorim să conectăm o funcție împreună în locuri diferite.
Unde folosim Lazy Evaluation ?

 Lazy Evaluation este folosită în special în limbile de programare funcțională.

 Când se utilizează Lazy Evaluation, o expresie nu este evaluată de îndată ce devine legată de o
variabilă, dar când evaluatorul este forțat să producă valoarea expresiei.

Lazy Evaluation este capabil să creeze liste infinite calculabile fără bucle infinite sau dimensiuni care
interferează în calcul

Unde folosim Currying ?

 Folosim Currying pentru transformarea unei funcții care ia mai multe argumente într-o
succesiune de funcții,fiecare având cîte un singur argument.

 Cu funcțiile currying reutilizăm mai ușor funcțiile mai abstracte.

 Currying-ul ne permite să aplicăm parțial funcțiile utilizând o sintaxă ușoară și apoi să trecem
aceste funcții parțial aplicate în jurul funcției de ordin superior.

Vous aimerez peut-être aussi