F#中的compare函数是做什么的
What does the compare function in F# do
我在阅读 F# 文档时遇到了 compare
函数。文档中的示例并没有真正说明函数的作用。我也尝试了一些输入,但找不到清晰的模式。
比较列表时,值为 -1、0 或 1。
> compare [1;2;4] [8;1;4;9]
-1
> compare [1;2;4] [1;2;3]
1
> compare [1;2;4] [1;2;4]
0
但是当比较字符串时,数字可能会大于 1。
> compare "abf" "abc"
3
compare
比较什么?
F# Language specification 提供语言元素的正式描述。对于 compare
函数,请参阅 p. 173 “8.15.6 Hash、= 和 Compare 的行为”,其中以伪代码的形式描述了实现以下目标的行为:
- Ordinal comparison for strings
- Structural comparison for arrays
- Natural ordering for native integers (which do not support System.IComparable)
结构比较是函数式编程中的一个重要概念,适用于元组、列表、选项、数组和用户定义的记录、联合以及结构类型,其组成字段类型允许结构相等、散列和比较。
对于字符串,比较依赖于System.String.CompareOrdinal
, whose return values are described under the System.String.Compare
方法:
Less than zero: strA precedes strB in the sort order.
Zero: strA occurs in the same position as strB in the sort order.
Greater than zero: strA follows strB in the sort order.
我在阅读 F# 文档时遇到了 compare
函数。文档中的示例并没有真正说明函数的作用。我也尝试了一些输入,但找不到清晰的模式。
比较列表时,值为 -1、0 或 1。
> compare [1;2;4] [8;1;4;9]
-1
> compare [1;2;4] [1;2;3]
1
> compare [1;2;4] [1;2;4]
0
但是当比较字符串时,数字可能会大于 1。
> compare "abf" "abc"
3
compare
比较什么?
F# Language specification 提供语言元素的正式描述。对于 compare
函数,请参阅 p. 173 “8.15.6 Hash、= 和 Compare 的行为”,其中以伪代码的形式描述了实现以下目标的行为:
- Ordinal comparison for strings
- Structural comparison for arrays
- Natural ordering for native integers (which do not support System.IComparable)
结构比较是函数式编程中的一个重要概念,适用于元组、列表、选项、数组和用户定义的记录、联合以及结构类型,其组成字段类型允许结构相等、散列和比较。
对于字符串,比较依赖于System.String.CompareOrdinal
, whose return values are described under the System.String.Compare
方法:
Less than zero: strA precedes strB in the sort order.
Zero: strA occurs in the same position as strB in the sort order.
Greater than zero: strA follows strB in the sort order.