2011-12-09 15 views
1

リストのリストを取り、すべての高値のうち最も低い値を見つける関数haskellを書こうとしています。すべての高値の最低値を見つける

したがって、関数はリスト[[1,1,3]、[2,5]、[1]]をとり、3,5,1の最小値なので1を返します。

どのhaskell関数を使用できますか?

+0

あなたは「高い値」もう少しを定義していただけますか? –

+3

この宿題はありますか? –

+0

これは私が手に入れるものではありません。私はラヌグウェイコースのプログラミングで試験の前に自分自身を準備しています。だから私はできるだけ多くの問題を解決しようとしており、これを理解できませんでした。 – krunarsson

答えて

5

リストの内包を使用した:

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

を(私はHaskellの初心者だ...とコーディングそれは初めてです。 。私は、Gratzz私にarroundのここでの答えをそれを把握!!:P)

5

Data.ListはGHCiの中

:browse Data.List 

、便利な機能が含まれています。

(宿題のようにたくさん見えるので...)

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)