1
ghciを使用しています。私は、リスト内のすべての要素を2倍にする単純な関数を持っています。私はそれが二重のリストの要素だが、最終的には以下のエラーで失敗するパターンマッチングを試みたとき: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
私は警備員やパターンでの作業と同じ機能を得ました。パターンだけを使用するときに私が間違っていることを確認できません。お知らせ下さい。あなたの二let
*Main> let double (x:xs) | null xs = [2* x] | otherwise = (2*x) : (double xs)
*Main> double [10,2,0,5]
[20,4,0,10]
2番目の 'let'は最初の' 'let''を上書きします。 – ErikR