Я пытался написать функцию, которая берет список кортежей (в моем случае, три значения 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
Однако каждый раз, когда я запускаю эту функцию, я в конечном итоге с моей вывод ошибок ... Есть Haskell обработка моего списка ввода кортежей, как пустые список или я еду на велосипеде до конца списка в моем «в противном случае», а затем доходит до ошибки?
Если вы измените тип 'sumTotal' на' (Int, Int, Int) -> Int', тогда 'maxTotal = максимум. fmap sumTriple'. – chepner