]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' of git://factorcode.org/git/factor
authorDoug Coleman <erg@jobim.local>
Sat, 18 Apr 2009 16:34:03 +0000 (11:34 -0500)
committerDoug Coleman <erg@jobim.local>
Sat, 18 Apr 2009 16:34:03 +0000 (11:34 -0500)
basis/sorting/slots/slots.factor

index 9a0455c3a73147533c4c26ad0d8171b17460af21..5fbf3d7af9153d9dfb1728b3ba24bd5c892d9962 100644 (file)
@@ -9,20 +9,20 @@ IN: sorting.slots
 
 : short-circuit-comparator ( obj1 obj2 word --  comparator/? )
     execute( obj1 obj2 -- obj3 )
-    dup +eq+ eq? [ drop f ] when ; inline
+    dup +eq+ eq? [ drop f ] when ;
 
 : slot-comparator ( seq -- quot )
-    [
-        but-last-slice
-        [ '[ [ _ execute( tuple -- value ) ] bi@ ] ] map concat
+    unclip-last-slice [
+        [
+            '[ [ _ execute( tuple -- value ) ] bi@ ]
+        ] map concat
     ] [
-        peek
-        '[ @ _ short-circuit-comparator ]
-    ] bi ;
+        '[ _ call( obj1 obj2 -- obj3 obj4 ) _ short-circuit-comparator ]
+    ] bi* ;
 
 PRIVATE>
 
-MACRO: compare-slots ( sort-specs -- <=> )
+MACRO: compare-slots ( sort-specs -- quot )
     #! sort-spec: { accessors comparator }
     [ slot-comparator ] map '[ _ 2|| +eq+ or ] ;