gpt4 book ai didi

algorithm - 元组列表中的添加

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:14:13 24 4
gpt4 key购买 nike

我打算编写一个名为 maxTotal 的函数,它将一个元组列表作为参数,其中列表中的每个元组由三个 Int 组成。我需要找到总和(元组中 3 个整数的总和)最大的元组并返回该总和。

example:
*Main> maxTotal [(1,2,3),(7,4,2),(5,5,1)]
13
*Main> maxTotal [(1,2,3),(5,5,1),(3,15,0)]
18
*Main> maxTotal [(3,3,3)]
9

这是我的:

tuplesum :: (Num a) => [(a,a,a)] -> [a] 
tuplesum [] = []
tuplesum ((a,b,c):xs) = (a+b+c) : tuplesum xs
maxTotal::(Num a) =>[(a,a,a)]->a
maxTotal[]=error"empty list"
maxTotal tuplesum (head : tail) = max head (maxTotal tail)

我的元组和有效,但我不断收到错误提示“输入‘=’时出现解析错误”

最佳答案

你可以试试这个:

import Data.List

tuplesum :: (Num a) => [(a,a,a)] -> [a]
tuplesum x = [a+b+c|(a,b,c)<-x]
maxTotal::(Num a, Ord a) =>[(a,a,a)]->Maybe a
maxTotal [] =Nothing
maxTotal x = Just (maximum $ tuplesum x)

或者如果你喜欢它更短:

import Data.List

maxTotal::(Num a, Ord a) =>[(a,a,a)]->Maybe a
maxTotal [] = Nothing
maxTotal x = Just (maximum [a+b+c|(a,b,c)<-x])

如果你不喜欢也许你可以使用:

import Data.List

maxTotal::(Num a, Ord a) =>[(a,a,a)]->a
maxTotal x = maximum [a+b+c|(a,b,c)<-x]

它已经给出了空列表的错误。

关于algorithm - 元组列表中的添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43586821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com