LINUX.ORG.RU

История изменений

Исправление Nervous, (текущая версия) :

Более приближенное к оригинальному примеру (векторы в роли записей):

(def result-set** [[0 10 1]                                                                   
                   [1 100 3]                                                                  
                   [2 100 2]                                                                 
                   [3 0 4]])                                                                  
                                                                                             
(defn by-second-asc [[_ counter1] [_ counter2]]                                              
  (compare counter1 counter2))                                                                

;; sort the vector records by second element                                                                                              
(def sorted-by-second (sort by-second-asc result-set**))                                      
;; ([3 0 4] [0 10 1] [1 100 3] [2 100 2])                                                  
                                                                                              
;; transpose the result to obtain a set of columns                                                                      
(apply map vector sorted-by-second)
;; => ([3 0 1 2] [0 10 100 100] [4 1 3 2])   

Никакой магии, никаких бананов.

Исправление Nervous, :

Более приближенное к оригинальному примеру (векторы в роли записей):

(def result-set** [[0 10 1]                                                                   
                   [1 100 3]                                                                  
                   [2 100 2]                                                                 
                   [3 0 4]])                                                                  
                                                                                             
(defn by-second-asc [[_ counter1] [_ counter2]]                                              
  (compare counter1 counter2))                                                                

;; sort the vector records by second element                                                                                              
(def sorted-by-second (sort by-second-asc result-set**))                                      
;; ([3 0 4] [0 10 1] [1 100 3] [2 100 2])                                                  
                                                                                              
;; transpose the result to obtain a set of columns                                                                      
(apply map vector sorted-by-second)
;; => ([3 0 1 2] [0 10 100 100] [4 1 3 2])   

Исходная версия Nervous, :

Более приближенное к оригинальному примеру (векторы вместо записей):

(def result-set** [[0 10 1]                                                                   
                   [1 100 3]                                                                  
                   [2 100 2]                                                                 
                   [3 0 4]])                                                                  
                                                                                             
(defn by-second-asc [[_ counter1] [_ counter2]]                                              
  (compare counter1 counter2))                                                                

;; sort the vector records by second element                                                                                              
(def sorted-by-second (sort by-second-asc result-set**))                                      
;; ([3 0 4] [0 10 1] [1 100 3] [2 100 2])                                                  
                                                                                              
;; transpose the result to obtain a set of columns                                                                      
(apply map vector sorted-by-second)
;; => ([3 0 1 2] [0 10 100 100] [4 1 3 2])