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:l05 [2019/03/25 14:51]
georgem [Înrolarea tipurilor polimorfice]
pp:l05 [2020/02/05 15:50] (current)
dmihai [Exerciții]
Line 228: Line 228:
 </​code>​ </​code>​
  
-Primul rând exprimă ideea că putem compara ​două liste //de același tip// (''​List a''​),​ doar dacă //​elementele lor sunt comparabile//​Italic Text//// (''​(Eq a) =%%>​%%''​).+Primul rând exprimă ideea că putem egala două liste //de același tip// (''​List a''​),​ doar dacă //​elementele lor sunt egalabile// (''​(Eq a) =%%>​%%''​).
  
 Observați că, în expresia celui de-al doilea caz, funcția ''​==''​ apare de două ori: o dată pentru a compara elemente, o dată pentru a compara liste. Acesta este un exemplu de **polimorfism ad hoc**. Cele două apeluri de ''​==''​ pot avea implementări diferite (al doilea este mereu un apel recursiv; primul poate fi, de exemplu, comparație între doi întregi, în cazul ''​List Int''​). Observați că, în expresia celui de-al doilea caz, funcția ''​==''​ apare de două ori: o dată pentru a compara elemente, o dată pentru a compara liste. Acesta este un exemplu de **polimorfism ad hoc**. Cele două apeluri de ''​==''​ pot avea implementări diferite (al doilea este mereu un apel recursiv; primul poate fi, de exemplu, comparație între doi întregi, în cazul ''​List Int''​).
Line 377: Line 377:
 c. Ce observați? Cum ați putea simplifica? c. Ce observați? Cum ați putea simplifica?
  
-{{:​pp:​lab5_-_schelet.zip|Lab 5 - Schelet}}+{{:​pp:​lab5_-_schelet.zip|Lab 5 - Schelet}}\\
 ===== Recommended Reading ===== ===== Recommended Reading =====