This shows you the differences between two versions of the page.
pp:22:teme:haskell-prezentare [2022/05/02 21:38] mihnea.muraru |
pp:22:teme:haskell-prezentare [2022/05/09 19:54] (current) mihnea.muraru |
||
---|---|---|---|
Line 25: | Line 25: | ||
* cum ai generat partițiile utilizând list comprehensions (dacă au respectat hint-ul)? | * 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? | * 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ă? |