SG

F# で LINQ 入門 Max Min Sum Average

 集計関数は簡単なので一気に紹介してしまいます。Max は最大値、Min は最小値、Sum は合計値、Average は平均値を集計して返します。List モジュールにも同様のメソッドがありますが、F# のために実装された List モジュールは LINQ よりも型に対して厳しいチェックが行われます。下記の例では、List.average 関数を使用する場合、int list 型ではコンパイルエラーとなってしまいます。

open System.Linq

let target = [ 1..10 ]

let max = target.Max()
let min = target.Min()
let sum = target.Sum()
let ave = target.Average()

let max' = List.max target
let min' = List.min target
let sum' = List.sum target

// 型 'int' は 'DivideByInt' という演算子をサポートしていません
// let ave' = List.average target
let ave' = target |> List.map float |> List.average


 実行結果

val target : int list = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
val max : int = 10
val min : int = 1
val sum : int = 55
val ave : float = 5.5
val max' : int = 10
val min' : int = 1
val sum' : int = 55
val ave' : float = 5.5