Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
pp:2025:haskell:tema3 [2025/05/04 22:51] tpruteanu |
pp:2025:haskell:tema3 [2025/05/05 01:05] (current) tpruteanu |
||
---|---|---|---|
Line 2: | Line 2: | ||
<note> | <note> | ||
- | Schelet: TODO | + | Schelet: {{:pp:2024:lambda-interpreter.zip|}} |
</note> | </note> | ||
<note warning> | <note warning> | ||
- | **Deadline:** TODO | + | **Deadline:** luni 26 mai, ora 23:59 |
* Temele trebuie submise pe [[curs.upb.ro]], în assignment-ul ''Tema 3''. | * Temele trebuie submise pe [[curs.upb.ro]], în assignment-ul ''Tema 3''. | ||
* Pentru întrebări folosiți forum-ul dedicat de pe [[curs.upb.ro]]. | * Pentru întrebări folosiți forum-ul dedicat de pe [[curs.upb.ro]]. | ||
Line 19: | Line 19: | ||
O să definim o expresie lambda cu ajutorul următorului **TDA**: | O să definim o expresie lambda cu ajutorul următorului **TDA**: | ||
<code haskell> | <code haskell> | ||
- | data Expression = Var String | + | data Lambda = Var String |
- | | Abs String Expression | + | | App Lambda Lambda |
- | | App Expression Expression | + | | Abs String Lambda |
</code> | </code> | ||
+ | |||
+ | <note important> | ||
+ | În schelet, definiția **TDA**-ului conține și un constructor pentru macro-uri, pentru cerințele **1** și **2** îl puteți ignora, o să puteți lua punctaj maxim fără să faceți pattern matching pe el, o să fie introdus în cadrul cerinței **3**. | ||
+ | </note> | ||
Variabilele sunt declarate de tipul ''String'', pentru simplitate o să considerăm variabilă orice șir de caractere format numai din litere mici ale alfabetului englez. | Variabilele sunt declarate de tipul ''String'', pentru simplitate o să considerăm variabilă orice șir de caractere format numai din litere mici ale alfabetului englez. | ||
Line 161: | Line 165: | ||
===== Punctare ===== | ===== Punctare ===== | ||
- | Tema are un punctaj total de **1.5p** din nota finală, împărțit pe subpuncte: | + | Tema are un punctaj total de **1p** din nota finală, împărțit pe subpuncte: |
- Evaluation | - Evaluation | ||
* 5p - **1.1.** - aflarea variabilelor | * 5p - **1.1.** - aflarea variabilelor | ||
Line 181: | Line 185: | ||
* 4p - **4.2.** expresii perechi | * 4p - **4.2.** expresii perechi | ||
* 5p - **4.2.** expresii numere naturale | * 5p - **4.2.** expresii numere naturale | ||
+ | |||
+ | Totalul de **150p** o sa fie scalat la **1p**. | ||
După cum s-a anunțat la începutul semestrului, pentru studenții care au punctaj maxim pe toate 3 temele de pe parcursul semestrului, o să se echivaleze examenul din sesiune cu punctaj maxim. | După cum s-a anunțat la începutul semestrului, pentru studenții care au punctaj maxim pe toate 3 temele de pe parcursul semestrului, o să se echivaleze examenul din sesiune cu punctaj maxim. | ||
<note warning> | <note warning> | ||
- | Pot să existe depunctări de până la **1.5p** pentru implementări hardcodate sau plagiat. | + | Pot să existe depunctări de până la **1p** pentru implementări hardcodate sau plagiat. |
</note> | </note> | ||