1

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

["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

4

2 回答 2

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
于 2010-05-18T22:35:52.460 回答
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 版本中,它不起作用。那是一个错误。

于 2010-05-18T21:33:28.650 回答