2016-10-31 4 views
-4

Ich habe nicht übereinstimmende Klammer Fehler in der dritten Zeile von enigmaEncode. Hat es jemand entdeckt? Hier ist mein CodeHaskell nicht übereinstimmende Klammer Fehler

enigmaEncode :: Char->Rotor->Rotor->Rotor->Int->Int->Int-> Char 
enigmaEncode '' r1 r2 r3 o1 o2 o3 = '' 
enigmaEncode c r1 r2 r3 o1 o2 o3 
    |(mod o1 26 /= 25) && (mod o2 26 /= 25) && (mod o3 26 /= 25) = encode (encode (encode c r1 (o1+1)) r2 (o2+1)) r3 (o3+1) 
    |(mod o1 26 == 25) && (mod o2 26 /= 25) && (mod o3 26 /= 25) = encode (encode (encode c r1 0) r2 (o2+1)) r3 (o3+1) 
    |(mod o1 26 /= 25) && (mod o2 26 == 25) && (mod o3 26 /= 25) = encode (encode (encode c r1 (o1+1)) r2 0) r3 (o3+1) 
    |(mod o1 26 /= 25) && (mod o2 26 /= 25) && (mod o3 26 == 25) = encode (encode (encode c r1 (o1+1)) r2 (o2+1)) r3 0 
    |(mod o1 26 == 25) && (mod o2 26 == 25) && (mod o3 26 /= 25) = encode (encode (encode c r1 0) r2 0) r3 (o3+1) 
    |(mod o1 26 == 25) && (mod o2 26 /= 25) && (mod o3 26 == 25) = encode (encode (encode c r1 0) r2 (o2+1)) r3 0 
    |otherwise = encode (encode (encode c r1 (o1+1)) r2 0) r3 0 
+0

Meinst du das Nullzeichen, wenn du ''''? – dave

Antwort

3

Das Problem ist, dass '' ist keine Char und es ist kein Zeichen in jeder Sprache. Das ist keine leere Char (so etwas gibt es in Haskell nicht). Wenn Sie das Nullzeichen gemeint haben, dann wollen Sie '\0'.

+0

winGHCi sagt der Fehler ist in der dritten Zeile, zweites Zeichen. Übrigens habe ich '' '' zu dem geändert, was Sie gesagt haben, aber immer noch denselben Fehler. –

+1

Sie müssen beide beheben. Sie meinen mit Sicherheit nicht den Null-Charakter. –

Verwandte Themen