我们可以像其他任何数据类型一样在列表上进行匹配,尽管它们有些独特,因为用于构建列表的构造函数是infix函数::。(有关更多信息,请参见示例创建列表。)
matchMyList : List SomeType -> SomeOtherType matchMyList myList = case myList of [] -> emptyCase (theHead :: theRest) -> doSomethingWith theHead theRest
我们可以根据需要匹配列表中的任意多个元素:
hasAtLeast2Elems : List a -> Bool hasAtLeast2Elems myList = case myList of (e1 :: e2 :: rest) -> True _ -> False hasAtLeast3Elems : List a -> Bool hasAtLeast3Elems myList = case myList of (e1 :: e2 :: e3 :: rest) -> True _ -> False