2017-05-08 29 views
0

私はhaskellに最大公約数除数関数を書こうとしています。これは私が今までに持っているものです:入力 '|'でhaskellエラー解析エラーが発生しました

gcd1 :: Int -> Int -> Int 
gcd1 a b 
    | a == 0 = b 
    | b == 0 = a 
    | otherwise = gcd (mod a b) 

コンパイルしようとすると、私はそのエラーを受け取ります。私は、関数宣言の開始場所と本文の開始場所を決定するためにhaskellが空白をどのように使用するのかを読みましたが、別々のスペースで試し続けて同じエラーが発生します。私は行方不明のものがありますか?

+1

野生の推測 - あなたはタブとスペースを混ぜていますか? - '-Wall'をオンにします。それについて警告するか、検索して' s/\ t// g'を置き換えてください。 – epsilonhalbe

+0

ファイルに 'a gcd = undefined'を入れます。問題なしでコンパイルした – epsilonhalbe

答えて

2

最後の行で、gcdを2つの引数に適用する必要があります。あなたは1 - >(mod a b)にしか適用されません。また、言及された他のものとして、おそらくスペースとタブを混在させているでしょう。私はスペースだけを使用することをお勧めします。

さらにもう1つ、GCD関数を定義するとき、実装で定義済みのgcd関数を使用しないことをお勧めします。

関連する問題