2017-10-08 6 views
0
invalidset :: Int -> Int -> Int -> [Int] 

invalidset _ 0 _ = [] 
invalidset 0 _ _ = [] 
invalidset n k 0 = [ z | z <- [1..n], mod z k == 1] 
invalidset n k x = [ z |z <- (validset n k (x-1)) , mod (z-1) k == mod(head(invalidset n k (x-1)) k ] 


validset :: Int -> Int -> Int -> [Int] 

validset _ 0 _ = [] 
validset 0 _ _ = [] 
validset n k 0 = [x | x <-[1..n], mod x k /= 1 ] 
validset n k x = [z | z <- validset n k (x-1) , elem z (invalidset n k x) == False ] 

このファイルをGHCiに読み込むと、6:104行の「解析エラーが発生しました」というメッセージが表示されます。Hakellの解析エラー

事前に

おかげで(それは「invalidset n個のk×」の定義の行でパースエラーを言っています)。

+2

私には分かりませんが、 ')'がありません。 –

答えて

1

だけmissmatch )

invalidset n k x = [ z |z <- (validset n k (x-1)) , mod (z-1) k == mod(head(invalidset n k (x-1))) k ] 

つ以上)

Here(x-1))後、あなたはそれを実行しています。