最大数最小数Haskell
所以我有一个列表列表,我必须找出每个列表的最小值并获得最小值的最大值
例子:
最大值最小值 [[1], [3, 5, 4], [8, 2]] == 3
这是我尝试的方式:
maxMin :: [[a]] -> a
maxMin (x:xs) = minimum(map maximum (x:xs))
回答
你反过来做了。在这里,您正在计算每个列表的最大值中的最小值。此外,签名有一个问题:您需要添加一个类型约束,它a是Ord类型类的一个实例:
maxMin :: Ord a => [[a]] -> a
maxMin xs = maximum (map minimum xs)
或作为无点表达式:
maxMin :: Ord a => [[a]] -> a
maxMin = maximum . map minimum
请注意,这不,如果列表为空,或者子列表的一个是空的工作。