我想在日期列上对此块进行排序:
["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
答案 0 :(得分:4)
您有三个字段的组,并且您想要对字段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
答案 1 :(得分:3)
您希望/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的版本中,我正在运行,它不起作用。这是一个错误。