Closed nimec01 closed 6 months ago
Die 1. Möglichkeit ist sicher die attraktivere.
Die Implementierung könnte so laufen, dass
checkMapping = correctMapping sol $ baseMapping clauses
durch
checkMapping = correctMapping (zip [1..] sol) $ baseMapping clauses
ersetzt wird und dann
correctMapping :: OutputMonad m => [ResStep] -> [(Int,Clause)] -> LangM m
correctMapping [] _ = pure()
correctMapping (Res (c1,c2,(c3,i)): rest) mapping = do
durch
correctMapping :: OutputMonad m => [(Int,ResStep)] -> [(Int,Clause)] -> LangM m
correctMapping [] _ = pure ()
correctMapping ((j, Res (c1,c2,(c3,i))) : rest) mapping = do
und in "Alle Schritte verwenden existierende Indizes?"
wird etwas wie "{j}. Schritt verwendet nut existierende Indizes?"
und in "Kein Index wird mehrfach vergeben?"
etwas wie "{j}. Schritt vergibt keinen Index wiederholt?"
geschrieben.
Die
correctMapping
Funktion bei demResolve
task überprüft, ob der Nutzendeund gibt ein entsprechendes Feedback aus.
Dieses Feedback wird aber pro Resolutionsschritt ausgegeben und könnte verwirrend sein, falls erst im zweiten Resolutionsschritt ein ungültiger Index verwendet wird. Hier ein Beispiel:
Die beiden Aussagen
sind hier widersprüchlich.
Mir fallen zwei Möglichkeiten ein, dies zu verbessern:
correctMapping
wird so umgeschrieben, dass sie zweiBool
s und kein Feedback ausgibt. Das Feedback wird dann einmalig mit den Ergebnissen des Aufrufs ausgegeben.