Haskellのmax関数の使い方と例


以下に、max関数の使い方といくつかの例を示します。

  1. 基本的な使い方: max関数は、以下のようにして使います。
max x y

ここで、xとyは比較したい2つの値です。max関数は、この2つの値のうち大きい方を返します。

例:

max 5 3 -- 結果: 5
max 10 (-2) -- 結果: 10
  1. リストの最大値を求める: max関数は、リストの要素の中から最大の値を求めるのにも利用できます。以下のような方法で使用します。
maximum [x1, x2, x3, ..., xn]

ここで、x1からxnまでの要素を持つリストが与えられた場合、maximum関数はその中から最大の値を返します。

例:

maximum [1, 5, 3, 9, 2] -- 結果: 9
maximum [-2, 0, 10, -5] -- 結果: 10
  1. カスタムデータ型の最大値を求める: max関数は、カスタムデータ型の最大値を求めるのにも使えます。ただし、その場合は最大値を比較するための順序付け関数が必要です。

例えば、以下のようなカスタムデータ型があるとします。

data Person = Person { name :: String, age :: Int }

この場合、次のようにして最大の年齢を持つPersonを求めることができます。

maxByAge :: Person -> Person -> Person
maxByAge p1 p2 = if age p1 > age p2 then p1 else p2

ここで、maxByAge関数は2つのPerson型の引数を取り、年齢を比較して大きい方のPersonを返します。

例:

let john = Person "John" 25
let jane = Person "Jane" 30
maxByAge john jane -- 結果: Person "Jane" 30

以上が、Haskellのmax関数の使い方といくつかの例です。max関数は、数値の比較だけでなく、カスタムデータ型の比較にも利用できる非常に便利な関数です。