找到所有高值的最低值

时间:2011-12-09 23:06:45

标签: haskell

我正在尝试编写haskell函数,它接受列表列表并找到所有高值的最低值。

因此该函数采用列表[[1,1,3],[2,5],[1]]并返回1,因为它是3,5,1的最低值。

我可以使用什么haskell功能?

3 个答案:

答案 0 :(得分:5)

Data.List包含有用的函数,

:browse Data.List

在ghci。

(看起来很像家庭作业,所以......)

答案 1 :(得分:5)

使用列表理解:

maxi xxs = minimum [ maximum a | a <- xxs] 

(我是Haskell的初学者......编码。这是我第一次在这里找到答案。所以,Gratzz给我!!:P)

答案 2 :(得分:3)

逐步思考:首先,您需要找到各个列表的所有最大值,例如:

map maximum [[1,1,3],[2,5],[1]]
--[3,5,1]

然后您需要此列表的最小值。所以一个解决方案是:

minOfMax xs = minimum (map maximum xs)

当然,您也可以编写自己的递归解决方案,或使用折叠:

minOfMax (x:xs) = foldl f (maximum x) xs where 
    f a bs = min a (maximum bs)