Corectare Tema 2
Precizări
Bonus-ul părții 1 (funcția circle
) trebuie testată manual (vezi mai jos). Prin urmare, checker-ul acordă maxim 110 puncte.
Depunctări
De marcat în spreadsheet, atât pentru bonus-ul Părții 1, cât și dacă ceva este în neregulă, următoarele rubrici:
Recursivitate explicită (0–5): câte dintre funcțiile gameAsString
, successors
, suitableSuccs
, insertSuccs
și extractPath
sunt implementate cu recursivitate explicită.
circle (0/0.5/1): pentru bonus-ul Părții 1, singurul aspect testat manual, treceți:
1, dacă au implementat corect funcția circle
. Trebuie să vă demonstreze live că target-ul realizează o rotație completă în jurul centrului, pe o traiectorie care seamănă cât mai mult cu un cerc (nu e necesar un cerc perfect);
0.5, dacă face o rotație completă, dar traiectoria e evident diferită de un cerc (de exemplu, dreptunghi);
0, dacă nu realizează o rotație completă.
Euristică trivială (0/1): pentru bonus-ul Părții 2, treceți 1 dacă au definit o euristică trivială, de forma h(x) = 0 sau altă constantă.
Sugestii de întrebări la prezentare
Partea 1 (Basics.hs
)
Cum au definit tipul Game
.
Cum au implementat reprezentarea ca String
(funcția gameAsString
).
Dacă au avut nevoie să instanțieze vreo clasă pentru tipul Game
(în afară de Show
, instanțiată în schelet).
Cum a fost utilizat currying-ul pentru definirea behavior-urilor (de exemplu, la funcția bounce
).
Partea 2 (Search.hs
)
Cum au definit tipul Node
.
Cum au instanțiat clasele Eq
și Ord
pentru tipul Node
.
Cum au definit funcțiile de acces nodeState
, nodeParent
etc.
Cum au instanțiat clasa ProblemState
.
Cum a fost exploatată evaluarea leneșă.
General
Unde au folosit funcționale.
Unde au folosit list comprehensions (nu era obligatoriu, dar încurajat).