如何在SML/NJ中使用LIST_SORT函数?

How to use LIST_SORT function in SML/NJ?

我不知道如何正确使用函数对 SML/NJ(新泽西州标准 ML)中的列表进行排序。

这是手册:here

制作一个用例示例, 例如排序([1,9,3,4]);为了得到 [1,3,4,9].

非常简单,语法如下:

ListMergeSort.sort (fn(x,y)=> x>y) [3,5,6,7,4,3,7,9,1,2,3];

解释: ListMergeSort:因为这是文档中提供的结构:

Synopsis

signature LIST_SORT

structure ListMergeSort : LIST_SORT

The LIST_SORT signature specifies an interface for the applicative sorting of lists.

此后,排序函数需要两个参数,从界面中可以看出:

val sort : (('a * 'a) -> bool) -> 'a list -> 'a list 
  1. 一个接受两个参数的函数和returns一个boolean:(('a * 'a) -> bool) 我动态定义的匿名函数就是一个例子:

    fn(x,y)=> x>y

它接受两个参数并且returns一个boolean。这两个参数由sort函数提供,函数会传入待排序列表的元素。

  1. 需要排序的列表,例如:[3,5,6,7,4,3,7,9,1,2,3]