This shows you the differences between two versions of the page.
|
pp:24:laboratoare:tda [2026/02/12 15:11] mihaela.balint [Exemple de gândire] |
pp:24:laboratoare:tda [2026/02/12 15:20] (current) mihaela.balint [Exerciții] |
||
|---|---|---|---|
| Line 87: | Line 87: | ||
| ==== Exemple de gândire ==== | ==== Exemple de gândire ==== | ||
| - | **nth (al n-lea element din listă)** --- | + | <code haskell> |
| + | nth (al n-lea element din listă) | ||
| + | </code> | ||
| **Întrebare**: Pe ce variabile fac recursivitate? \\ | **Întrebare**: Pe ce variabile fac recursivitate? \\ | ||
| **Raționament**: A identifica al ''n''-lea element din ''L'' înseamnă a identifica al ''(n-1)''-lea element din ''tail(L)''. \\ | **Raționament**: A identifica al ''n''-lea element din ''L'' înseamnă a identifica al ''(n-1)''-lea element din ''tail(L)''. \\ | ||
| Line 100: | Line 103: | ||
| + | <code haskell> | ||
| + | duplicate (duplicarea fiecărui element al listei) | ||
| + | </code> | ||
| - | **duplicate (duplicarea fiecărui element al listei)** --- | ||
| **Notă**: Există un singur parametru (''L''), deci o singură variabilă pe care pot face recursivitate. \\ | **Notă**: Există un singur parametru (''L''), deci o singură variabilă pe care pot face recursivitate. \\ | ||
| **Întrebare**: Cum transform rezultatul pentru ''tail(L)''? \\ | **Întrebare**: Cum transform rezultatul pentru ''tail(L)''? \\ | ||
| Line 119: | Line 124: | ||
| * **Ștergerea** elementului de la poziția ''n'' din listă (ex: ștergerea celui de-al treilea element din $[a, b, c, d, e, f, g]$ produce $[a, b, d, e, f, g]$). | * **Ștergerea** elementului de la poziția ''n'' din listă (ex: ștergerea celui de-al treilea element din $[a, b, c, d, e, f, g]$ produce $[a, b, d, e, f, g]$). | ||
| * **Simetria structurală**: Verificați dacă doi arbori binari sunt simetrici (ex: un arbore cu structura ''node(empty, x, node(empty, y, empty))'' este simetric cu unul de forma ''node(node(empty, z, empty), w, empty)''). | * **Simetria structurală**: Verificați dacă doi arbori binari sunt simetrici (ex: un arbore cu structura ''node(empty, x, node(empty, y, empty))'' este simetric cu unul de forma ''node(node(empty, z, empty), w, empty)''). | ||
| - | * [[https://ocw.cs.pub.ro/courses/_media/pp/24/laboratoare/tda/tda-sol.zip|Soluții]] | + | |
| ===== Referințe ===== | ===== Referințe ===== | ||
| * [[https://www.ic.unicamp.br/~meidanis/courses/mc336/problemas-lisp/L-99_Ninety-Nine_Lisp_Problems.html|Probleme de programare funcțională]] | * [[https://www.ic.unicamp.br/~meidanis/courses/mc336/problemas-lisp/L-99_Ninety-Nine_Lisp_Problems.html|Probleme de programare funcțională]] | ||