Haskell Fehler: "fehlt eine begleitende Bindung" und "nicht im Umfang"

7

Ich habe ein Stück Code erstellt:

%Vor%

Wenn ich es jedoch ausführe, erhalte ich folgende Fehlermeldung:

  

ChangeVowels.hs: 2: 1:       Der Typ-Signatur für 'ord' fehlt eine begleitende Bindung

     

ChangeVowels.hs: 4: 16: Nicht im Bereich: 'ord'

     

ChangeVowels.hs: 4: 24: Nicht im Bereich: 'ord'

Ich habe es mit Import data.char versucht, aber das funktioniert auch nicht.

    
anon1 20.03.2011, 20:21
quelle

2 Antworten

14

Sie müssen eine Implementierung für die Funktion ord bereitstellen. Hier haben Sie eine Signatur für ord angegeben, aber keine Implementierung.

Oder Sie können Haskells eigene Funktion ord verwenden, also Char.ord .

    
ChrisJ 20.03.2011, 20:28
quelle
5

Entfernen Sie die Zeile:

%Vor%

Oder geben Sie eine Definition.

Und es ist eine schlechte Idee, Ihre Funktion intToDigit zu benennen, obwohl sie bereits in Data.Char verwendet wird, um das Gegenteil von dem zu tun, was Sie tun.

Ihre Funktion ist Data.Char.digitToInt, und ihre Implementierung funktioniert auch mit hexadezimal:

%Vor%

Eigentlich ist es nicht das, was Sie definiert haben ... warum 'a' in Ihrem Code?

    
Ptival 20.03.2011 20:27
quelle

Tags und Links