如何在 Nim 中对序列进行排序?
How to sort a sequence in Nim?
我有一个列表理解生成的序列如下:
var a_bigram_list = lc[a[i..i+2] | (i <- 0..<len(a)), string]
现在想排序但是sort(a_bigram_list)
会出现下面的编译错误
Error: type mismatch: got (seq[string])
but expected one of:
proc sort[A, B](t: OrderedTableRef[A, B]; cmp: proc (x, y: (A, B)): int)
proc sort[A, B](t: var OrderedTable[A, B]; cmp: proc (x, y: (A, B)): int)
proc sort[A](t: CountTableRef[A])
proc sort[A](t: var CountTable[A])
proc sort[T](a: var openArray[T]; cmp: proc (x, y: T): int; order = SortOrder.Ascending)
有什么方法可以对序列进行排序吗?或者我需要将它转换为数组吗?如果是这样,有没有办法从lc获取数组?
sort
与序列一起工作(openArray
是一个通用参数类型,它接受 array
s 和 seq
s),但它期望比较过程作为第二个参数.
您可以从系统模块为其提供默认 cmp:
sort(a_bigram_list, system.cmp)
我有一个列表理解生成的序列如下:
var a_bigram_list = lc[a[i..i+2] | (i <- 0..<len(a)), string]
现在想排序但是sort(a_bigram_list)
会出现下面的编译错误
Error: type mismatch: got (seq[string])
but expected one of:
proc sort[A, B](t: OrderedTableRef[A, B]; cmp: proc (x, y: (A, B)): int)
proc sort[A, B](t: var OrderedTable[A, B]; cmp: proc (x, y: (A, B)): int)
proc sort[A](t: CountTableRef[A])
proc sort[A](t: var CountTable[A])
proc sort[T](a: var openArray[T]; cmp: proc (x, y: T): int; order = SortOrder.Ascending)
有什么方法可以对序列进行排序吗?或者我需要将它转换为数组吗?如果是这样,有没有办法从lc获取数组?
sort
与序列一起工作(openArray
是一个通用参数类型,它接受 array
s 和 seq
s),但它期望比较过程作为第二个参数.
您可以从系统模块为其提供默认 cmp:
sort(a_bigram_list, system.cmp)