如何在日期对此rebol域名块进行排序?

时间:2010-05-18 21:00:17

标签: rebol

我想在日期列上对此块进行排序:

["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 个答案:

答案 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的版本中,我正在运行,它不起作用。这是一个错误。