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弄亂了格式,而不是原始來源。 –