" ==>"的含义F#中的语法

时间:2015-11-17 20:17:06

标签: f# fscheck

请考虑F#

中的以下代码
let rec insert x xs = 
    match xs with
    | []      -> [x]
    | y :: ys -> if x <= y then x :: y :: ys 
                 else           y :: insert x ys

然后

let insertKeepsOrder (x : int) xs = ordered xs ==> ordered (insert x xs)

最后

==>

我无法理解的是最后一行中的Foo#change_value含义!!!

这是什么?

1 个答案:

答案 0 :(得分:6)

==>运算符是FsCheck的一部分。它用于表示只有在某些条件为真时才能保存的属性

所以在你的例子中:

let insertKeepsOrder (x : int) xs = ordered xs ==> ordered (insert x xs)

这意味着ordered (insert x xs)只有在ordered xs为真时才应该为真。

您可以在the "Conditional Properties" section of the FsCheck documentation中了解详情。