-7
当我尝试使用':l文件'在其中加载文件时,GHCi爆炸。我可能会做什么错?
mySeq :: Integer -> Integer -> Integer -> [Integer]
mySeq x y z
| x < y = []
| otherwise = (x : sequence (x - z) y z)
当我尝试使用':l文件'在其中加载文件时,GHCi爆炸。我可能会做什么错?
mySeq :: Integer -> Integer -> Integer -> [Integer]
mySeq x y z
| x < y = []
| otherwise = (x : sequence (x - z) y z)
我不明白你正在尝试与sequence
那里做。
如果你只是想建立这四个元素的列表,怎么样
mySeq :: Integer -> Integer -> Integer -> [Integer]
mySeq x y z
| x < y = []
| otherwise = [x, x-z, y, z]
或者,如@Alec指出,也许你的意思做递归调用(的mySeq
代替sequence
):
mySeq :: Integer -> Integer -> Integer -> [Integer]
mySeq x y z
| x < y = []
| otherwise = (x : mySeq (x - z) y z)
第二种方法是正确的。 –
是否有错误信息伴随着爆炸? – Thilo
您是否有意在递归调用中使用'mySeq'而不是'sequence'?即'x:mySeq(x-z)y z'而不是'x:sequence(x-z)y z'? – Alec
类型系统很少妨碍你的行为,除非你做了一些附带的事情。利用类型系统来查找错误。 – Carcigenicate