|
|
## Stufenbeschreibung (ENTWURF)
|
|
|
|
|
|
**Stufe 1:**
|
|
|
+ Hiding von Prelude Standardfunktionen (z.B.: map, reverse, list, >=, >> etc.)
|
|
|
+ Imports verbieten
|
|
|
+ Module verbieten
|
|
|
+ Higher-Order und Lambda Funktionen verbieten
|
|
|
+ Eigene Datentypen verbieten
|
|
|
+ Typsignaturen erzwingen
|
|
|
+ check-expect erzwingen
|
|
|
+ do Notation verbieten
|
|
|
|
|
|
* ⊕ Hiding von Prelude Standardfunktionen (z.B.: map, reverse, list, >=, >> etc.)
|
|
|
* ⊕ Imports verbieten
|
|
|
* ⊕ Module verbieten
|
|
|
* ⊕ Higher-Order und Lambda Funktionen verbieten
|
|
|
* ⊕ Eigene Datentypen verbieten
|
|
|
* ⊕ Typsignaturen erzwingen
|
|
|
* ⊕ check-expect erzwingen
|
|
|
* ⊕ do Notation verbieten
|
|
|
|
|
|
**Stufe 2:**
|
|
|
- Hiding einige Predudefunktionen aufheben (z.B.: list)
|
|
|
- Eigene Datentypen erlauben
|
|
|
+ Typvariablen verbieten
|
|
|
+ Showinstanzen für Datentypen generieren
|
|
|
|
|
|
* ⊖ Hiding einiger Predudefunktionen aufheben (z.B.: list)
|
|
|
* ⊖ Eigene Datentypen erlauben
|
|
|
* ⊕ Typvariablen verbieten
|
|
|
* ⊕ Showinstanzen für Datentypen generieren
|
|
|
|
|
|
**Stufe 3:**
|
|
|
- Preludehiding deaktivieren
|
|
|
- Imports erlauben
|
|
|
- Typvariablen erlauben
|
|
|
- Higher-Order und Lambda Funktionen erlauben
|
|
|
- Showinstanzen für Datentypen nicht mehr generieren
|
|
|
- check-expect in quick check überführen
|
|
|
|
|
|
* ⊖ Preludehiding deaktivieren
|
|
|
* ⊖ Imports erlauben
|
|
|
* ⊖ Typvariablen erlauben
|
|
|
* ⊖ Higher-Order und Lambda Funktionen erlauben
|
|
|
* ⊖ Showinstanzen für Datentypen nicht mehr generieren
|
|
|
* ⊖ check-expect in quick check überführen
|
|
|
|
|
|
**Stufe 4 (Standardhaskell)**
|
|
|
|
|
|
## Sinnvolle Fehlermeldungen für
|
|
|
- Erkennen von Funktionen die mit Großbuchstaben anfangen
|
|
|
- Erkennen wenn der Datentypname vor der Typkonstruktor verwendet wird
|
|
|
- Vergessene (oder zu viel gesetzte) Klammern bei z.B.: Pattern Matching
|
|
|
- Argument vergessen
|
|
|
* Erkennen von Funktionen, die mit Großbuchstaben anfangen
|
|
|
* Erkennen, wenn der Datentypname vor der Typkonstruktor verwendet wird
|
|
|
* Vergessene (oder zu viel gesetzte) Klammern bei z.B.: Pattern Matching
|
|
|
* Argument vergessen
|
|
|
* Verwendung von Tabs statt Leerzeichen
|
|
|
|
|
|
## Diskussionthemen
|
|
|
- CheckExpect Syntax (wie sollen die Aufrufe im Programm untergebracht werden? Langer Kommentar? Kurzer Kommentar? Eigene Syntax?)
|
|
|
- Code Coverage aus hpc oder ähnlichem mit aufnehmen
|
|
|
- Arbitrary Instanzen für primitive Datentypen, Listen, Bäume (einfach) und Tupel generieren
|
|
|
- chocolate cookies einführen?
|
|
|
- Record Syntax?
|
|
|
- Language-Tag am Quellcodestart verbieten -> HaskellSrcExtensions können das von Haus aus |
|
|
\ No newline at end of file |
|
|
|
|
|
* CheckExpect Syntax (wie sollen die Aufrufe im Programm untergebracht werden? Langer Kommentar? Kurzer Kommentar? Eigene Syntax?)
|
|
|
* Code Coverage aus hpc oder ähnlichem mit aufnehmen
|
|
|
* Arbitrary Instanzen für primitive Datentypen, Listen, Bäume (einfach) und Tupel generieren
|
|
|
* chocolate cookies o.Ä. einführen?
|
|
|
* Record Syntax?
|
|
|
* Language-Tag am Quellcodestart verbieten -> HaskellSrcExtensions können das von Haus aus |
|
|
\ No newline at end of file |