我一直在試圖編寫一個函數,它接受一個元組列表(在我的例子中,元組中的三個Int值)並返回列表中任何元組的最大總和。你如何使用Haskell中的元組列表進行模式匹配?
這是我這樣做當前的嘗試:
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
不過,我每次運行這個功能的時候,我結束了我的錯誤輸出...是哈斯克爾治療的元組我的輸入列表爲空名單還是我騎自行車到我的「其他」後衛列表的末尾,然後到達錯誤?
如果您將'sumTotal'的類型更改爲'(Int,Int,Int) - > Int',那麼'maxTotal = maximum。 fmap sumTriple'。 – chepner