A Doua Parte

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)

description

Calculatoare C4

Transcript of A Doua Parte

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)