如何在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
一个接受两个参数的函数和returns一个boolean
:(('a * 'a) -> bool)
我动态定义的匿名函数就是一个例子:
fn(x,y)=> x>y
它接受两个参数并且returns一个boolean
。这两个参数由sort
函数提供,函数会传入待排序列表的元素。
- 需要排序的列表,例如:[3,5,6,7,4,3,7,9,1,2,3]
我不知道如何正确使用函数对 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
一个接受两个参数的函数和returns一个
boolean
:(('a * 'a) -> bool)
我动态定义的匿名函数就是一个例子:fn(x,y)=> x>y
它接受两个参数并且returns一个boolean
。这两个参数由sort
函数提供,函数会传入待排序列表的元素。
- 需要排序的列表,例如:[3,5,6,7,4,3,7,9,1,2,3]