Differences

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

Link to this comparison view

pp:26:teme:haskell-graphs [2026/03/19 17:51]
mihnea.muraru created
pp:26:teme:haskell-graphs [2026/03/19 17:56] (current)
mihnea.muraru [Etapa 1]
Line 63: Line 63:
 Găsiți detalii despre funcționalitate și implementare,​ precum și exemple, direct în codul sursă. Veți avea de completat definițiile care încep cu ''​%%*** TODO ***%%''​. Găsiți detalii despre funcționalitate și implementare,​ precum și exemple, direct în codul sursă. Veți avea de completat definițiile care încep cu ''​%%*** TODO ***%%''​.
  
-Pentru reprezentarea **mulțimilor**,​ veți folosi tipul predefinit ''​%%Set a%%'',​ similar tipului listă ''​%%[a]%%''​. Având în vedere că există ​funcții pe mulțimi ​cu **același nume** ​ca cele pe liste (de exemplu, ​''​%%map%%'',​ ''​%%filter%%''​), ​pentru evitarea conflictului de nume, abordarea standard, adoptată și în temă, este de a importa etichetat modulul necesar ​(''​%%import qualified Data.Set as S%%''​), urmând ​ca toate tipurile și funcțiile din acest modul să fie utilizate ​cu numele prefixat: ​''​%%S.Set a%%'',​ ''​%%S.map%%'',​ ''​%%S.filter%%'' ​etc.+Pentru reprezentarea **mulțimilor**,​ veți folosi tipul predefinit ''​%%Set a%%'',​ similar tipului listă ''​%%[a]%%''​. Având în vedere că multe dintre ​funcțiile pe mulțimi ​au **același nume** ​cu cele pe liste (''​map'',​ ''​filter''​, ''​foldr''​ etc.), conflictele se evită plasând la începutul scheletului liniile: 
 + 
 +<code haskell>​ 
 +import Data.Set ​(Set) 
 +import qualified Data.Set as Set 
 +</​code>​ 
 + 
 +Semnificația este următoarea:​ 
 + 
 +  * Prima linie afirmă că doar constructorul de tip ''​Set''​ poate fi utilizat ​ca atare. 
 +  * A doua linie afirmă că toate celelalte entități importate ​din modul trebuie **prefixate** ​cu ''​Set.''​. De exemplu, ''​Set.map'' ​denotă funcționala ​ pe mulțimiîn timp ce ''​map'' ​continuă să refere funcționala pe liste standard.
  
 **ATENȚIE!** Toate funcțiile din această etapă, cu excepția ''​%%search%%'',​ vor fi implementate **FĂRĂ recursivitate explicită**. Nerespectarea acestei cerințe va conduce la o **depunctare de 10p/100 per funcție**. **ATENȚIE!** Toate funcțiile din această etapă, cu excepția ''​%%search%%'',​ vor fi implementate **FĂRĂ recursivitate explicită**. Nerespectarea acestei cerințe va conduce la o **depunctare de 10p/100 per funcție**.
pp/26/teme/haskell-graphs.txt · Last modified: 2026/03/19 17:56 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