This shows you the differences between two versions of the page.
|
pp:26:teme:haskell-graphs-draft [2026/04/26 22:27] mihnea.muraru [Etapa 2] |
pp:26:teme:haskell-graphs-draft [2026/04/26 23:02] (current) mihnea.muraru [Haskell: Graph Zoo] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Haskell: Graph Zoo ====== | ====== Haskell: Graph Zoo ====== | ||
| - | * Data publicării: 26.04.2026 | + | * Data publicării: 27.04.2026 |
| - | * Data ultimei modificări: 26.04.2026 | + | * Data ultimei modificări: 27.04.2026 |
| * Deadline hard: ziua laboratorului 12 | * Deadline hard: ziua laboratorului 12 | ||
| * Forum temă | * Forum temă | ||
| Line 86: | Line 86: | ||
| * Funcțiile din modulul ''StandardGraph'' care nu respectă cele două constrângeri de mai sus vor fi **depunctate total**. | * Funcțiile din modulul ''StandardGraph'' care nu respectă cele două constrângeri de mai sus vor fi **depunctate total**. | ||
| - | * Funcțiile din modulul ''Algorithms'' care nu respectă constrângerile din comentarii vor fi **depunctate total**. | + | * Funcțiile din modulul ''Algorithms'' care nu respectă constrângerile din schelet vor fi **depunctate total**. |
| ===== Etapa 2 ===== | ===== Etapa 2 ===== | ||
| Line 176: | Line 176: | ||
| * Tipul ''%%AlgebraicGraph%%'' este cel prezentat mai sus. | * Tipul ''%%AlgebraicGraph%%'' este cel prezentat mai sus. | ||
| * Mai departe, veți implementa **aceleași funcții** ca în modulul ''%%StandardGraph%%'', cu excepția ''%%fromComponents%%'', dar de data aceasta vor opera pe reprezentarea algebrică. | * Mai departe, veți implementa **aceleași funcții** ca în modulul ''%%StandardGraph%%'', cu excepția ''%%fromComponents%%'', dar de data aceasta vor opera pe reprezentarea algebrică. | ||
| - | * Toate funcțiile vor fi implementate **CU recursivitate explicită**. | ||
| * Veți observa că implementările funcțiilor ''%%removeNode%%'', ''%%splitNode%%'' și ''%%mergeNodes%%'' respectă un **tipar similar**, pe care vom căuta să îl generalizăm în etapa 3. | * Veți observa că implementările funcțiilor ''%%removeNode%%'', ''%%splitNode%%'' și ''%%mergeNodes%%'' respectă un **tipar similar**, pe care vom căuta să îl generalizăm în etapa 3. | ||
| * ''%%Modular%%'': conține momentan doar câteva funcții pentru determinarea **descompunerii modulare** a grafului, dar va fi îmbogățit în etapa 3: | * ''%%Modular%%'': conține momentan doar câteva funcții pentru determinarea **descompunerii modulare** a grafului, dar va fi îmbogățit în etapa 3: | ||
| Line 184: | Line 183: | ||
| Se impun următoarele **constrângeri** de implementare asupra funcțiilor din modulul ''AlgebraicGraph'': | Se impun următoarele **constrângeri** de implementare asupra funcțiilor din modulul ''AlgebraicGraph'': | ||
| + | * Toate trebuie implementate **CU recursivitate explicită**. | ||
| * Toate trebuie să opereze **direct pe reprezentarea algebrică** din această etapă. **NU este permisă** convertirea în reprezentarea din etapa 1 și utilizarea funcțiilor de acolo. | * Toate trebuie să opereze **direct pe reprezentarea algebrică** din această etapă. **NU este permisă** convertirea în reprezentarea din etapa 1 și utilizarea funcțiilor de acolo. | ||
| ==== Depunctări ==== | ==== Depunctări ==== | ||
| - | Funcțiile care nu respectă constrângerile de mai sus, și cele din schelet, vor fi **depunctate total**. | + | Funcțiile care nu respectă constrângerile de mai sus sau pe cele din schelet vor fi **depunctate total**. |
| ===== Etapa 3 ===== | ===== Etapa 3 ===== | ||