Поделиться через


Функция Seq.compareWith<'T> (F#)

Сравнивает две последовательности, используя заданную функцию сравнения поэлементно.

Пространство имен/путь к модулю: Microsoft.FSharp.Collections.Seq

Сборка: FSharp.Core (в FSharp.Core.dll)

// Signature:
Seq.compareWith : ('T -> 'T -> int) -> seq<'T> -> seq<'T> -> int

// Usage:
Seq.compareWith comparer source1 source2

Параметры

  • comparer
    Тип: 'T -> 'T -> int

    Функция, которая принимает элемент из каждой последовательности и возвращает целое число. Если значение не равно нулю, итерация останавливается и возвращается это значение.

  • source1
    Тип: seq<'T>

    Первая входная последовательность.

  • source2
    Тип: seq<'T>

    Вторая входная последовательность.

Исключения

Исключение

Атрибут Condition

ArgumentNullException

Создается, если любая из входных последовательностей имеет значение NULL.

Возвращаемое значение

Возвращает первый ненулевой результат функции сравнения. Если достигнут конец последовательности, возвращается -1, если первая последовательность короче, и 1, если вторая последовательность короче.

Заметки

В скомпилированных сборках имя этой функции — CompareWith. При обращении к функции из языка платформы .NET Framework, отличного от F#, или посредством отражения следует использовать это имя.

Пример

В следующем примере демонстрируется использование Seq.compareWith для сравнения двух последовательностей с использованием функции пользовательского сравнения.

let sequence1 = seq { 1 .. 10 }
let sequence2 = seq { 10 .. -1 .. 1 }

// Compare two sequences element by element.
let compareSequences = Seq.compareWith (fun elem1 elem2 ->
    if elem1 > elem2 then 1
    elif elem1 < elem2 then -1
    else 0) 

let compareResult1 = compareSequences sequence1 sequence2
match compareResult1 with
| 1 -> printfn "Sequence1 is greater than sequence2."
| -1 -> printfn "Sequence1 is less than sequence2."
| 0 -> printfn "Sequence1 is equal to sequence2."
| _ -> failwith("Invalid comparison result.")
  

Платформы

Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows XP с пакетом обновления 3 (SP3), Windows XP x64 с пакетом обновления 2 (SP2), Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2), Windows Server 2003 с пакетом обновления 2 (SP2)

Сведения о версии

Среда выполнения F#

Поддерживается в версиях 2.0, 4.0

Silverlight

Поддерживается в версии 3

См. также

Ссылки

Модуль Collections.Seq (F#)

Пространство имен Microsoft.FSharp.Collections (F#)