Sunteți pe pagina 1din 1

1) Sa se scrie o functie in Scheme pentru calculul factorialului unui

numar natural. Sa se defineasca o varianta recursiva a


programului, apoi o varianta cu recursivitate pe coada, prin
folosirea unui acumulator.
2) Sa se scrie o functie in Scheme pentru inversarea unei liste. Sa
se defineasca o varianta recursiva a programului, apoi o varianta
cu recursivitate pe coada, prin folosirea unui acumulator.
3) Sa se scrie o functie in Scheme pentru calculul reuniunii a doua
multimi, apoi pentru intersectia, precum si pentru diferenta lor.
Multimile sunt reprezentate sub forma de liste.
4) Sa se defineasa recursiv o functie STERGE cu doua
argumente : un atom A si o lista L, care intoarce ca rezultat o noua
lista in care toate aparitiile atomului A pe primul nivel al listei L au
fost sterse.
Exemplu : (sterge a (m a (m a))) intoarce (m (m a))
5) Sa se defineasca o functie STERGETOT, care lucreaza ca si
STERGE, dar elimina aparitiile atomului A situate pe orice nivel in
lista L.
Exemplu : (stergetot a (m a (m a))) intoarce (m (m))
6) Sa se defineasca o functie recursiva in Scheme care sa elimine
duplicatele dintr-o lista.
Indicatie : Sa se defineasca o functie auxiliara care sa colecteze
intr-o variabila lista elementelor intalnite in parcurgerea listei.
7) Sa se defineasca o functie recursiva in Scheme care sa
liniarizeze o lista de liste.
Exemplu : (liniarizare (((a b) c) (d e))) intoarce (a b c d e)

S-ar putea să vă placă și