Differences
This shows you the differences between two versions of the page.
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 ===== | ||