This is an old revision of the document!
===== Laborator 4 - Tipuri de date abstracte ===== !! In acest laborator, vom specifica explicit tipurile functiilor implementate !! ==== TDA-uri monomorfice: Liste monomorfice, inregistrari ==== * Implementati TDA-ul: "lista de numere naturale" * Scrieti o functie care converteste valori ale TDA-ului vostru in liste din Haskell * Implementati TDA-ul "optiune", care codifica valori optionale de tipul Integer, e.g. fie ''None'', fie o valoare intreaga * Scrieti un TDA care codifica un tuplu (inregistrare) format din urmatoarele campuri: * Nume (codificat ca String) * Varsta (codificat ca Integer) * Prieteni (codificat ca o lista de String-uri) * Nota PP (codificat ca Integer). Acest camp este optional! * Scrieti o functie care primeste o lista de inregistrari, si le intoarce pe acelea pentru care varsta este mai mare ca 20 * Scrieti o functie care primeste o lista de inregistrari, si le intoarce pe acelea care contin cel putin un prieten cu numele "Matei" * Scrieti o functie care primeste o lista de inregistrari, si le intoarce pe acelea care contin campul "Nota PP" * Scrieti o functie care primeste o lista de nume, o lista de varste, o lista ce contine liste de prieteni, si intoarce o lista de inregistrari corespunzatoare ==== TDA-uri polimorfice: Liste, Arbori, Perechi ==== === Liste polimorfice === * Implementati TDA-ul "Lista polimorfica" * Re-implementati o functie ce converteste Liste definite anterior, in liste (polimorfice) din Haskell * Implementati ''foldl'', ''foldr'' si ''map'' pentru TDA-ul creat === Arbori polimorfici === * Implementati TDA-ul "Arbore polimorfic" * Implementati o functie ''tmap'' care este echivalentul lui ''map'' pe arbori * Implementati o functie ''tzipWith'' care este echivalentul lui ''zipWith'' pe arbori * Implementati ''foldT'' pe arbori * Implementati ''tmap'' be baza ''foldT'' === Perechi === * Implementati TDA-ul "Pereche". Observatie: O pereche poate contine valori de orice tip * Implementati o functie care primeste doua liste (reprezentate folosind TDA-ul anterior) si construieste o lista de perechi === Solutii laborator === * [[https://github.com/Programming-Paradigms/Labs/archive/master.zip|Rezolvari]] * Alte rezolvari : [[https://www.dropbox.com/sh/jj7y6x8ny3b4tml/AAB9_sOGjtZzelfTvu0KQIKva?dl=0|Alte Rezolvari]]