這裏是我的代碼:
data = [1,2,3,4,5,6,7,8,9,10]
cak' [] = []
cak' (x:xs) =
if x >= 2 then
cak' (x - 2) : cak' (xs)
else
x : cak' (xs)
run = cak' data
,直到我改變cak' (x - 2) : cak' (xs)
到cak' $ x - 2 : cak' (xs)
它不會工作。它爲什麼會產生這樣的影響?
如果你有任何typecheck錯誤,請包括他們。瞭解如何閱讀這些內容在Haskell中非常重要(並且幫助很大程度上追蹤錯誤)。 – Thilo
確實。另外,爲所有函數添加類型簽名是一個非常好的主意,這使得更容易理解你正在做的事情,並且通常還會導致類型錯誤變得不那麼神祕。 – leftaroundabout