2
我试图做一个函数,它会查找给定列表的3个相同和相邻的数字,对于我试图实现的求解器。然后,如果有3个相同和相邻的数字,它会将第一个和第三个相同的数字标记为“0”,并将中间值设置为负数。使用累加器的Haskell递归
我很奇怪,为什么这是给我一个错误:
change xs = chnge xs []
where
chnge xs acc
| length xs <= 2 = [acc]
| (head xs == xs !! 1) && (head xs == xs !! 2) = [0, (xs !! 1)*(-1), 0] ++ tail xs
| otherwise = chnge (tail xs) (acC++ head xs)
这只是一个解析错误,因为与定义'change'的子句相比,where子句(以及它的内容)应该缩进至少一个空格。作为一般规则,您应该在您的问题中包含GHC给您的错误消息。 – macron
对不起,那是我的错。我只是忘了缩进其余的代码。我已经修复它以匹配它的真实性。 – user1670032
解析错误是由于stackoverflow弄乱了格式,而不是原始来源。 –