簡體   English   中英

如何在Haskell中將模式匹配與元組列表一起使用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM