Функция 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 |
---|---|
Создается, если любая из входных последовательностей имеет значение 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