[英]How do you use pattern matching with lists of tuples in Haskell?
我一直在嘗試編寫一個函數,該函數接受一個元組列表(在本例中為元組內的三個Int值),並返回列表中任何元組的最大和。
這是我目前的嘗試:
type Triples = [(Int, Int, Int)]
maxTotal :: Triples -> Int
maxTotal [] = error "ERROR: NO TUPLES"
maxTotal ((x,y,z):rest)
| sumTriple x y z > maxTotal rest = sumTriple x y z
| otherwise = maxTotal rest
sumTriple :: Int -> Int -> Int -> Int
sumTriple x y z = x + y + z
但是,每次運行此函數時,我都會得到錯誤輸出...是Haskell將元組的輸入列表視為一個空列表,還是我在“否則”的防護中循環到該列表的末尾,然后到達錯誤?
原來我對maxTotal的定義不完整。 我只需要添加以下內容:
maxTotal [(x,y,z)] = x + y + z
案件結案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.