【发布时间】:2015-01-01 13:41:37
【问题描述】:
我正在学习 OCaml,并在排序数据方面做各种练习。 我想了解如何使用标准库列表进行排序
例如,我想使用这些函数对这个数组进行排序 [94; 50; 6; 7; 8个; 8]
List.sort
List.stable_sort
List.fast_sort
List.unique_sort
它的语法是什么?
【问题讨论】:
标签: list functional-programming ocaml
我正在学习 OCaml,并在排序数据方面做各种练习。 我想了解如何使用标准库列表进行排序
例如,我想使用这些函数对这个数组进行排序 [94; 50; 6; 7; 8个; 8]
List.sort
List.stable_sort
List.fast_sort
List.unique_sort
它的语法是什么?
【问题讨论】:
标签: list functional-programming ocaml
如果你想在你的列表中使用这些函数,你必须指定比较函数。
引用自文档:
如果比较函数的参数比较为 相等,如果第一个更大,则为正整数,如果第一个更大,则为负 如果第一个较小,则为整数
在模块Pervasives 中有一个多态比较函数:
val compare : 'a -> 'a -> int
所以,在你的情况下,你可以这样做:
List.sort compare [94; 50; 6; 7; 8; 8]
【讨论】:
myCompare 1 1 将返回-1。你总是可以的,(fun x y -> ~- (compare x y))。