Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pp:26:teme:haskell-graphs-draft [2026/05/13 17:24]
mihnea.muraru [Etapa 4]
pp:26:teme:haskell-graphs-draft [2026/05/13 17:37] (current)
mihnea.muraru [Changelog]
Line 257: Line 257:
     * Funcția ''​nodes''​ este reimplementată utilizând noul mecanism de reducere.     * Funcția ''​nodes''​ este reimplementată utilizând noul mecanism de reducere.
     * Funcția ''​isNode''​ verifică dacă un nod apare într-un graf, utilizând noul mecanism de reducere.     * Funcția ''​isNode''​ verifică dacă un nod apare într-un graf, utilizând noul mecanism de reducere.
-    * Funcția ''​edges''​ este reimplementată prin **asamblarea** ''​AlgebraicGraphFolder''​-ului aferent funcției ''​nodes'',​ cu un alt ''​AlgebraicGraphFolder'',​ într-o manieră **semidependentă**,​ obținându-se concomitent un plus de eficiență,​ modularitate și reutilizare.+    * Funcția ''​edges''​ este reimplementată prin **asamblarea** ''​AlgebraicGraphFolder''​-ului aferent funcției ''​nodes'',​ cu un alt ''​AlgebraicGraphFolder'',​ într-o manieră **semidependentă**,​ obținându-se concomitent un **plus** de eficiență,​ modularitate și reutilizare.
   * ''​StandardGraph''​   * ''​StandardGraph''​
     * Este cel din etapa 1, și este necesar următorului modul.     * Este cel din etapa 1, și este necesar următorului modul.
Line 263: Line 263:
   * ''​Algorithms''​   * ''​Algorithms''​
     * Funcția ''​dfsStack''​ constituie o alternativă mai eficientă, bazată pe o stivă, a funcției ''​dfs''​ din etapa 1, în care fiecare element este vizitat cel mult o dată.     * Funcția ''​dfsStack''​ constituie o alternativă mai eficientă, bazată pe o stivă, a funcției ''​dfs''​ din etapa 1, în care fiecare element este vizitat cel mult o dată.
-      * **Atenție!** Scopul este de a **nu** elabora de la zero implementarea,​ ci de a o obține prin **//​equational reasoning//​** pornind de la implementarea din etapa 1.+      * **Atenție!** Scopul este de a **nu** elabora de la zero implementarea,​ ci de a o obține prin **//​equational reasoning//​** pornind de la implementarea din etapa 1 și de la indicațiile din comentarii.
  
 Se impun următoarele **constrângeri**:​ Se impun următoarele **constrângeri**:​
  
-  * Pentru funcțiile ''​nodesEdges''​ din modulul ''​AlgebraicGraph''​ și ''​dfsStack''​ din modulul ''​Algorithms'',​ a căror implementare trebuie obținută prin **//​equational reasoning//​**,​ trebuie să redactați în comentarii pașii prin care ați trecut (vedeți exemplele și exercițiile din laboratorul 11).+  * Pentru funcțiile ''​nodesEdges''​ din modulul ''​AlgebraicGraph''​ și ''​dfsStack''​ din modulul ''​Algorithms'',​ a căror implementare trebuie obținută prin **//​equational reasoning//​**,​ trebuie să redactați în comentarii, în porțiunea ''​DERIVARE:​ ...'', ​pașii prin care ați trecut (vedeți exemplele și exercițiile din laboratorul 11).
  
 Este suficient ca arhiva pentru **vmchecker** să conțină modulele ''​AlgebraicGraph'',​ ''​StandardGraph''​ și ''​Algorithms''​. Este suficient ca arhiva pentru **vmchecker** să conțină modulele ''​AlgebraicGraph'',​ ''​StandardGraph''​ și ''​Algorithms''​.
Line 273: Line 273:
 ==== Depunctări ==== ==== Depunctări ====
  
-Funcțiile care nu respectă constrângerile 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**.
  
  
Line 287: Line 287:
   * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​26/​teme/​haskell/​etapa2.zip|Schelet etapa 2]]   * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​26/​teme/​haskell/​etapa2.zip|Schelet etapa 2]]
   * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​26/​teme/​haskell/​etapa3.zip|Schelet etapa 3]]   * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​26/​teme/​haskell/​etapa3.zip|Schelet etapa 3]]
 +  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​26/​teme/​haskell/​etapa4.zip|Schelet etapa 4]]
  
 ===== Referințe ===== ===== Referințe =====
Line 294: Line 295:
 ===== Changelog ===== ===== Changelog =====
  
-  * 13.05, 17:30: Publicat etapa 4+  * 13.05, 17:40: Publicat etapa 4
   * 09.05, 21:02: Adăugat clarificare la etapa 2 despre semnificația constrângerii de recursivitate explicită.   * 09.05, 21:02: Adăugat clarificare la etapa 2 despre semnificația constrângerii de recursivitate explicită.
pp/26/teme/haskell-graphs-draft.1778682245.txt.gz · Last modified: 2026/05/13 17:24 by mihnea.muraru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0