1
我正在使用ghci。我有一個簡單的函數,它將列表中的每個元素加倍。當我試圖模式匹配,雙擊它在列表中的元素,但最終失敗,以下錯誤:Haskell模式代碼失敗,出現錯誤「函數中的非窮舉模式」
*Main> let double [] = []
*Main> let double (x:xs) = (2*x) : double xs
*Main> double [10,2,0,5]
[20,4,0,10*** Exception: <interactive>:52:5-37: Non-exhaustive patterns in function double
我得到了相同的功能與警衛和模式工作。不知道當我單獨使用模式時我做錯了什麼。請指教。
*Main> let double (x:xs) | null xs = [2* x] | otherwise = (2*x) : (double xs)
*Main> double [10,2,0,5]
[20,4,0,10]
第二個'let'重寫第一個。 – ErikR