我想在日期列上对这个块进行排序:
["domain1.com" 18-Jan-2011 #"^/"
"domain2.com" 20-Aug-2011 #"^/"
"domain3.com" 23-Dec-2011 #"^/"
"domain4.com" 22-Sep-2011 #"^/"]
我看不到如何使用此处解释的排序/跳过功能真正做到这一点,这对我来说不是很清楚: http ://www.rebol.com/docs/words/wsort.html
我想在日期列上对这个块进行排序:
["domain1.com" 18-Jan-2011 #"^/"
"domain2.com" 20-Aug-2011 #"^/"
"domain3.com" 23-Dec-2011 #"^/"
"domain4.com" 22-Sep-2011 #"^/"]
我看不到如何使用此处解释的排序/跳过功能真正做到这一点,这对我来说不是很清楚: http ://www.rebol.com/docs/words/wsort.html
您有三个字段的组,并且您想对字段 2 进行排序?
这应该这样做:
data: [
"domain1.com" 18-Jan-2011 #"^/"
"domain2.com" 20-Aug-2011 #"^/"
"domain3.com" 23-Dec-2011 #"^/"
"domain4.com" 22-Sep-2011 #"^/"
]
sort/skip/compare data 3 2
您希望/all
与比较器功能一起使用的细化。这使它将子系列(与跳过长度一样长)作为“记录”传递给比较器,而不是仅传递该系列的第一个元素。
>> sort/skip/compare/all ["domain1.com" 18-Jan-2011 #"^/"
"domain2.com" 20-Aug-2011 #"^/"
"domain3.com" 23-Dec-2011 #"^/"
"domain4.com" 22-Sep-2011 #"^/"] 3 func [a b] [
(second a) < (second b)
]
== ["domain1.com" 18-Jan-2011 #"^/"
"domain2.com" 20-Aug-2011 #"^/"
"domain4.com" 22-Sep-2011 #"^/"
"domain3.com" 23-Dec-2011 #"^/]
它在 Rebol 2 中有效,但在我当前运行的 Rebol 3 版本中,它不起作用。那是一个错误。