2010-05-18 53 views

回答

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 
+0

啊,從來沒有被吸收,你可以只使用一個偏移存在。即使在最新的r3 * sort/skip/compare/all [「a」2「b」1] 2 func [ab] [print a print b] *似乎在做錯誤的事情(打印一行和b在一條線上) – HostileFork 2010-05-18 23:10:22

+0

謝謝你,這個幫助應該像你一樣清楚:) – 2010-05-19 05:11:01

+0

@hostile很高興,這讓你發現了R3中的一個潛在的bug;至於我,我仍然在使用R2。 – 2010-05-19 05:11:36

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的版本中我正在運行,它不工作。這是一個錯誤。