2016-10-31 12 views
-4

enigmaEncodeの3行目に不一致のブラケットエラーが発生しました。誰でもそれを見つけますか?ここに私のコードはハスケルの不一致のブラケットエラー

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

''''と入力するとヌル文字を意味しますか? – dave

答えて

3

だ問題は''Charではないということです、それは任意の言語の文字ではありません。それは空ではありませんChar(そのようなものはハスケルに存在しません)。ヌル文字を意味する場合は、'\0'が必要です。

+0

winGHCiはエラーが3行目の2文字目にあると言います。 Btw私は '' ''をあなたが言ったことに変えましたが、それと同じエラーです。 –

+1

両方を修正する必要があります。あなたはほぼ確実にヌル文字を意味するわけではありません。 –