1. Scrieți o funcție ce primește un număr si o listă de numere de forma [a1, a2, … an] ca parametrii și calculează X - a1 - a2 - … - an.

2. Inversați o listă folosind foldl.

3. Scrieți o închidere funcțională care elimină caracterul 'a' dintr-un string primit ca parametru. Scrieți o implementare ce utilizează o funcție de tip fold și alta care se folosește funcția filter.

4. Implementați o funcție ce primește ca parametru o lista de string-uri și returnează concatenarea lor folosind fold.

5. Se dau două cuvinte de aceeași lungime. Să se numere câte caractere sunt diferite în cele doua șiruri.

6. Implementați o funcție ce primește 2 parametri: un șir de cifre de forma “111222111333112” și un număr K. Această funcție trebuie să facă următorii pași de K ori:

  1. se grupează cifrele identice în felul următor “111222111333112” → [“111”, “222”, “111”, “333”, “11”, “2”]
  2. pentru fiecare element din lista rezultată se generează un element de forma (numărul de apariții al cifrei din șir, cifra din șir) ex: [“111”, “222”, “111”, “333”, “11”, “2”] → [(“3”, “1”), (“3”, “2”), (“3”, “1”), (“3”, “3”), (“2”, “1”), (“1”, “2”)]
  3. se face flatten pe lista rezultată la pasul anterior ex: [(“3”, “1”), (“3”, “2”), (“3”, “1”), (“3”, “3”), (“2”, “1”), (“1”, “2”)] → “313231332112”