我正在尝试编写haskell函数,它接受列表列表并找到所有高值的最低值。
因此该函数采用列表[[1,1,3],[2,5],[1]]并返回1,因为它是3,5,1的最低值。
我可以使用什么haskell功能?
答案 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)