列表上的模式匹配
我們可以在列表上匹配任何其他資料型別,儘管它們有點獨特,因為構建列表的建構函式是中綴函式::
。 (有關其工作原理的更多資訊,請參閱建立列表示例。)
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