Differences

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

Link to this comparison view

pp:22:teme:haskell-prezentare [2022/04/26 19:35]
mihnea.muraru created
pp:22:teme:haskell-prezentare [2022/05/09 19:54] (current)
mihnea.muraru
Line 13: Line 13:
   * cum ai derivat bfs și dfs din search?   * cum ai derivat bfs și dfs din search?
   * cum se valorifică evaluarea leneșă la countIntermediate?​   * cum se valorifică evaluarea leneșă la countIntermediate?​
 +
 +Etapa 2
 +  * cum ai redefinit StandardGraph folosind data (**întrebare obligatorie**,​ vedeți spreadsheet)?​
 +    * exemplu <code haskell>
 +data StandardGraph a = SG { nodes :: S.Set a, edges :: S.Set (a, a) }
 +fromComponents ns es = SG (S.fromList ns) (S.fromList es)
 +</​code>​
 +  * cum ai implementat funcția x?
 +  * ce tipar comun ai observat la funcțiile removeNode, splitNode, mergeNodes?
 +    * R: prelucrarea propriu-zisă e doar pt constructorul Node, în rest se propagă recursiv
 +  * cum ai generat partițiile utilizând list comprehensions (dacă au respectat hint-ul)?
 +  * care e un avantaj al reprezentării din etapa 2 vs reprezentarea din etapa 1?
 +
 +Etapa 3
 +  * cum ai definit clasa care generalizează conceptul de graf: parametrizată cu tipul concret sau cu constructorul de tip (**întrebare obligatorie**,​ vedeți enunț și spreadsheet)?​ de ce?
 +    * R: parametrizată cu constructorul de tip în sine, pentru a expune tipul etichetelor nodurilor
 +  * care este tipul funcției nodes, presupunând că e definită în interiorul clasei (**întrebare obligatorie**,​ vedeți enunț și spreadsheet)?​
 +    * R: <code haskell>
 +nodes :: Graph g => g a -> S.Set a
 +</​code>​
 +  * ce face fromInteger din Num?
 +  * de ce nu este suficientă instanța implicită de Eq obținută cu deriving?
 +    * R: compară prea strict reprezentările simbolice
 +  * care a fost cea mai generală funcțională,​ care a permis implementarea tuturor celorlalte funcții din AlgebraicGraph?​
 +    * R: extend
 +  * care este diferența dintre extend și fmap?
 +    * R: fmap nu modifică structura, ci doar etichetele
 +  * cum au simplificat mulțimile implementarea lui isModule?
 +    * R: S.map poate reduce dimensiunea mulțimii => compararea lungimii cu 1
 +  * cum au simplificat mulțimile implementarea lui isModularPartition?​
 +    * R: similar cu isModule
 +  * cum ai determinat partiția maximală?
pp/22/teme/haskell-prezentare.1650990912.txt.gz · Last modified: 2022/04/26 19:35 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