次の方法で共有


Seq.exists2<'T1,'T2> 関数 (F#)

更新 : 2010 年 8 月

入力シーケンスの対応する要素のペアが、指定された述語を満たすかどうかをテストします。

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

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

// Signature:
Seq.exists2 : ('T1 -> 'T2 -> bool) -> seq<'T1> -> seq<'T2> -> bool

// Usage:
Seq.exists2 predicate source1 source2

パラメーター

  • predicate
    型: 'T1 -> 'T2 -> bool

    入力シーケンスの項目の各ペアをテストする関数。

  • source1
    型: seq<'T1>

    最初の入力シーケンス。

  • source2
    型: seq<'T2>

    2 番目の入力シーケンス。

例外

例外

状態

ArgumentNullException

2 つの入力シーケンスのいずれかが null の場合にスローされます。

戻り値

述語は、長さが短い方のコレクションの終わりに達するまで、2 つのシーケンスの一致する要素に適用されます。 いずれかの適用結果として true が返された場合、全体の結果は true になり、残りの要素はテストされません。 それ以外の場合は、false が返されます。

解説

一方のシーケンスが他方より短い場合、長い方のシーケンスの残りの要素は無視されます。

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

使用例

Seq.exists2 を使用する方法を次のコード例に示します。

// Use Seq.exists2 to compare elements in two sequences.
// isEqualElement returns true if any elements at the same position in two supplied
// sequences match.
let isEqualElement seq1 seq2 = Seq.exists2 (fun elem1 elem2 -> elem1 = elem2) seq1 seq2
let seq1to5 = seq { 1 .. 5 }
let seq5to1 = seq { 5 .. -1 .. 1 }
if (isEqualElement seq1to5 seq5to1) then
    printfn "Sequences %A and %A have at least one equal element at the same position." seq1to5 seq5to1
else
    printfn "Sequences %A and %A do not have any equal elements that are at the same position." seq1to5 seq5to1

出力

  

プラットフォーム

Windows 7、Windows Vista SP2、Windows XP SP3、Windows XP x64 SP2、Windows Server 2008 R2、Windows Server 2008 SP2、Windows Server 2003 SP2

バージョン情報

F# ランタイム

サポート対象: 2.0、4.0

Silverlight

サポート: 3

参照

その他の技術情報

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

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

履歴の変更

日付

履歴

理由

2010 年 8 月

コード例を追加。

情報の拡充