リストの末尾のみを返す関数には問題があります。関数はmyTailであり、入力が空のリストであっても有用な結果が得られるはずです。パターンマッチング、警備式と条件式空リストのハスケルテール関数
この作品:
> myTail_pat :: [a] -> [a]
> myTail_pat (x:xs) = xs
> myTail_pat [] = []
しかし、この:
> myTail_guard (x:xs) | null xs = []
> | otherwise = xs
は私にエラーを与える:
は、私はすべての3つの方法を理解したいプログラムをエラー:パターンマッチの失敗:myTail_guard [] どのようにパターンなしで関数を宣言できますか?
ありがとうございます。
あなたを助けるかもしれない:http://cs.anu.edu.au/Student/comp1100/haskell/tourofsyntax.html#警備員 – Artelius
あなたはちょうど 'myTail = drop 1'を実行することができます – newacct
パターンマッチングバージョンは、とにかくよりhaskellのようです。 ) – Rayne