This is an old revision of the document!
===== Laborator 5 - TDA-uri polimorfice. Type-classes ===== ==== TDA-ul listă ==== * (Re)definiți tipul de date polimorfic ''List a'' * (Re)implementați funcțiile ''foldr'', ''foldl'', ''map'' și ''filter'' pentru TDA-ul creat ==== TDA-ul arbore ==== * (Re)definiți tipul de date polimorfic ''Tree a'' * (Re)implementați ''tmap'' (echivalentul lui ''map'' pe arbori) * (Re)implementați ''tzipWith'' (echivalentul lui ''zipWith'' pe arbori) * (Re)implementați ''foldT'' (fold pe arbori) * (Re)implementați ''tmap'' pe baza lui ''foldT'' * Implementați operația de transformare a unui ''Tree a'' într-un ''List a'', folosind traversarea arborelui în preordine/inordine/postordine. * Implementati operatia ''mirror'' pe arbori. ==== Type-classes (multimi de tipuri) ==== * Înrolați tipurile de date ''List a'' și ''Tree a'' în clasa ''Show'' * Înrolați aceleași tipuri în clasa ''Eq'' * Implementați sortarea pentru ''List a'', unde ''a'' e un tip oarecare înrolat în clasa ''Ord'' * Implementați căutarea binară pentru ''Tree a'', unde ''a'' e un tip oarecare înrolat în clasa ''Ord'' * Înrolați tipurile de date ''List'' și ''Tree'' în clasa ''Functor''