Share via


Array.fold2<'T1,'T2,'State> 関数 (F#)

計算にアキュムレータ引数を使用しながら、2 つのコレクションから抽出された要素のペアに左から右に関数を適用します。2 つの入力配列は同じ長さである必要があります。長さが異なると ArgumentException が発生します。

名前空間/モジュール パス: Microsoft.FSharp.Collections.Array

アセンブリ: FSharp.Core (FSharp.Core.dll 内)

// Signature:
Array.fold2 : ('State -> 'T1 -> 'T2 -> 'State) -> 'State -> 'T1 [] -> 'T2 [] -> 'State

// Usage:
Array.fold2 folder state array1 array2

パラメーター

  • folder
    型: 'State -> 'T1 -> 'T2 -> 'State

    入力要素を受け取って状態を更新する関数。

  • state
    型: 'State

    初期状態です。

  • array1
    型: 'T1[]

    最初の入力配列。

  • array2
    型: 'T2[]

    2 番目の入力配列。

例外

例外

状態

ArgumentException

入力配列の長さが異なる場合にスローされます。

戻り値

最終状態。

解説

この関数は、コンパイルされたアセンブリでは Fold2 という名前です。F# 以外の言語から、またはリフレクションを使用してこの関数にアクセスする場合は、この名前を使用します。

使用例

Array.fold2 の使用例を次のコードに示します。

// Use Array.fold2 to perform computations over two arrays (of equal size)
// at the same time.
// Example: Add the greater element at each array position.
let sumGreatest array1 array2 =
    Array.fold2 (fun acc elem1 elem2 ->
        acc + max elem1 elem2) 0 array1 array2

let sum = sumGreatest [| 1; 2; 3 |] [| 3; 2; 1 |]
printfn "The sum of the greater of each pair of elements in the two arrays is %d." sum

出力

  

プラットフォーム

Windows 8、Windows 7、Windows Server 2012 で Windows Server 2008 R2

バージョン情報

F# コア ライブラリのバージョン

サポート: ポータブル 2.0、4.0

参照

関連項目

Collections.Array モジュール (F#)

Microsoft.FSharp.Collections 名前空間 (F#)