2016-10-31 17 views
-7

GHCiは、 ':l file'を使ってファイルをロードしようとすると爆発します。何が間違っている可能性がありますか?

mySeq :: Integer -> Integer -> Integer -> [Integer] 
mySeq x y z 
    | x < y = [] 
    | otherwise = (x : sequence (x - z) y z) 
+11

爆発に伴いエラーメッセージが表示されますか? – Thilo

+8

あなたは再帰呼び出しで 'sequence'の代わりに' mySeq'を持っていることを多分意味しましたか? 'x:sequence(x - z)y z'の代わりに 'x:mySeq(x - z)y z' – Alec

+1

あなたが何か縁取りをしない限り、タイプシステムはめったに到着しません。タイプシステムを利用してエラーを見つけてください。 – Carcigenicate

答えて

2

sequenceで何をしようとしているのか分かりません。

あなただけ@Alecが指摘するように、多分あなたは(mySeq代わりsequenceの)再帰呼び出しを行うためのものか、

mySeq :: Integer -> Integer -> Integer -> [Integer] 
mySeq x y z 
    | x < y = [] 
    | otherwise = [x, x-z, y, z] 

についてあるいは、これらの四つの要素を持つリストを作成したい場合は、次の

mySeq :: Integer -> Integer -> Integer -> [Integer] 
mySeq x y z 
    | x < y = [] 
    | otherwise = (x : mySeq (x - z) y z) 
+0

2番目の方法は正しいです。 –

関連する問題