{ { 3 { 2 4 } } { 1 { 2 0 0 0 } } { 0 { 1 } } { 1 { 1 } } }
{ length-test<=> <=> } sort-values-by
] unit-test
+
+{ { { "apples" 1 } { "bananas" 2 } { "cherries" 3 } } } [
+ H{ { "apples" 1 } { "bananas" 2 } { "cherries" 3 } }
+ { { sequences:length <=> } } sort-keys-by
+] unit-test
! Copyright (C) 2009 Slava Pestov, Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
-USING: arrays fry kernel math.order sequences sorting ;
+USING: arrays assocs fry kernel math.order sequences sorting ;
IN: sorting.slots
: execute-comparator ( obj1 obj2 word -- <=>/f )
: sort-by ( seq sort-specs -- seq' ) [ ] sort-by-with ;
-: sort-keys-by ( seq sort-seq -- seq' ) [ first ] sort-by-with ;
+: sort-keys-by ( alist sort-seq -- seq' )
+ [ >alist ] dip [ first ] sort-by-with ;
-: sort-values-by ( seq sort-seq -- seq' ) [ second ] sort-by-with ;
+: sort-values-by ( seq sort-seq -- seq' )
+ [ >alist ] dip [ second ] sort-by-with ;