2010-02-20 49 views
3

我注意到它似乎有这样的行为,但我不想依赖它,如果它不是故意的。这里是有问题的代码:List.partition是否保证维护秩序?

let bestValuesUnder max = 
    allValues 
    >> List.partition (fun value -> value < max) 
    >> function 
     | ([], bad) -> [List.min bad] 
     | (good, _) -> good // |> List.sortBy (fun value -> -value) 

allValues是返回一个int列表的功能。

回答

5

该规范并没有说:

http://msdn.microsoft.com/en-us/library/ee353782(VS.100).aspx

但在FSharp.Core当前实现不维持秩序(它使用突变引擎盖下,以创造所产生的名单,因为它走的原;这是有效的)。我会问,看看我们是否打算将此推向规范,因为它似乎是一个有用的保证。

+0

充分利用您的RSS仪表板,我看到:)感谢您的输入。 – Cogwheel 2010-02-20 19:04:56

+0

是的,这是为了成为规范的一部分,我们将更新文档。 – Brian 2010-02-22 16:13:16