我试图在列表中获得具有最大总和的列表,然后返回该列表.但是当我用这个函数调用时
max_list [[1,2],[3,6],[10,34,5]]
Run Code Online (Sandbox Code Playgroud)
它给了我错误:
Exception: a4.hs:65:1-64: Non-exhaustive patterns in function max_list
Run Code Online (Sandbox Code Playgroud)
这是代码:
max_num :: [Int] -> Int
max_num [x] = x
max_num (x:xs) | (max_num xs) > x = maxVal xs
| otherwise = x
max_list :: [[Int]] -> [Int]
max_list [[a]] = head(filter (\x -> (sum_int x) == (max_num [[a]]) [[a]])
Run Code Online (Sandbox Code Playgroud)
我的逻辑如下:我愿意
示例电话:
head (filter (\x -> (sum x) == 11) [[1,3],[4,7],[2,5]])
> [4,7]
Run Code Online (Sandbox Code Playgroud)
所以在那种情况下,我计算了手中的值11,并且每个元素的总和是[4,11,7],它将给出其总和等于最大值的值