「Real World Haskell」の演習を行っています。1 つは、 の安全なバージョンを設計することですinit :: [a] -> [a]
。
私はから始めることになっていますsafeInit :: [a] -> Maybe [a]
これは私が現時点で持っているものです。
safeInit :: [a] -> Maybe [a]
safeInit [] = Nothing
safeInit [a] = if length [a] <= 1
then Nothing
else Just (take (length [a] -1) [a])
GCHi で、テストsafeInit [1,2]
時にエラー メッセージが表示される
*例外: ch4exercise.hs:(21,1)-(24,44): 関数 safeInit の非網羅的なパターン
[a]
のリスト (任意のサイズ) を単に表すという印象を受けましたa
。私は何を間違っていますか?