【问题标题】:Sorting List with OCaml standard library function使用 OCaml 标准库函数排序列表
【发布时间】: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


    【解决方案1】:

    如果你想在你的列表中使用这些函数,你必须指定比较函数。

    引用自文档:

    如果比较函数的参数比较为 相等,如果第一个更大,则为正整数,如果第一个更大,则为负 如果第一个较小,则为整数

    在模块Pervasives 中有一个多态比较函数:

    val compare : 'a -> 'a -> int
    

    所以,在你的情况下,你可以这样做:

    List.sort compare [94; 50; 6; 7; 8; 8]
    

    【讨论】:

    • 还可以添加降序比较功能吗?
    • 完美:-) 用于降序“让 myCompare x y = if x
    • 这将主要工作,但myCompare 1 1 将返回-1。你总是可以的,(fun x y -> ~- (compare x y))
    猜你喜欢
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    相关资源
    最近更新 更多