Logică și structuri discrete - Exerciții cu liste

Exercițiul 1: Ce face funcția ?
Când scriem cod, trebuie să putem urmări ce face. Astfel putem arăta fie că el face ce trebuie, fie să găsim unde e greșeala.
Pentru următoarele două funcții argumentați cât mai riguros și convingător (ideal: prin inducție după numărul de elemente al listei) ce rezultat produc.

let rec what1 = function
  | [] -> []
  | h :: t -> h :: what1 t
let what2 lst =
  let rec w2 r = function
    | [] -> []
    | h :: t -> w2 (h :: r) t
  in w2 [] lst

Exercițiul 2: Scrieți o funcție care ia ca parametri o listă și un element și returnează lista în care elementul e plasat după toate elementele listei inițiale. Implementați funcția
a) recursiv
b) folosind List.fold_right


Marius Minea
Last modified: Mon Oct 9 11:25:00 EEST 2017