この関数の 1 番目と 3 番目のバージョンでこのエラーが発生するのに、2 番目の定義では問題なく動作する理由について、私は混乱しています。
-- head and tail
third :: [a] -> a
third [a] = head (tail (tail[a]))
-- Pattern matching
third2 :: [a] -> a
third2 (_:_:x:_) = x
-- List indexing
third3 :: [a] -> a
third3 [a] = [a]!!2
前もって感謝します