Как отсортировать этот ребол доменных имен по дате? - PullRequest
1 голос
/ 19 мая 2010

Я хочу отсортировать этот блок по столбцу даты:

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

4 голосов
/ 19 мая 2010

У вас есть группы из трех полей, и вы хотите отсортировать по полю 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
3 голосов
/ 19 мая 2010

Требуется уточнение /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, которую я сейчас использую, не работает. Это ошибка.

...