]> gitweb.factorcode.org Git - factor.git/commitdiff
sorting: simplify l-next, r-next.
authorJohn Benediktsson <mrjbq7@gmail.com>
Mon, 22 Jan 2018 19:45:54 +0000 (11:45 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 22 Jan 2018 19:45:54 +0000 (11:45 -0800)
core/sorting/sorting.factor

index 511318e00c4205a2d02d9625df6d49e4e47cb7bd..a7dcbf86b7ef84f83af7a35fdabefda65e501fed 100644 (file)
@@ -41,20 +41,18 @@ TUPLE: merge-state
     push-all-unsafe ; inline
 
 : l-next ( merge -- )
-    [ [ l-elt ] [ [ 1 + ] change-from1 drop ] bi ] [ accum>> ] bi
-    push-unsafe ; inline
+    [ l-elt ] [ [ 1 + ] change-from1 accum>> ] bi push-unsafe ; inline
 
 : r-next ( merge -- )
-    [ [ r-elt ] [ [ 1 + ] change-from2 drop ] bi ] [ accum>> ] bi
-    push-unsafe ; inline
+    [ r-elt ] [ [ 1 + ] change-from2 accum>> ] bi push-unsafe ; inline
 
-: decide ( merge quot: ( elt1 elt2 -- <=> ) -- ? )
+: decide? ( merge quot: ( elt1 elt2 -- <=> ) -- ? )
     [ [ l-elt ] [ r-elt ] bi ] dip call +gt+ eq? ; inline
 
 : (merge) ( merge quot: ( elt1 elt2 -- <=> ) -- )
     over r-done? [ drop dump-l ] [
         over l-done? [ drop dump-r ] [
-            2dup decide
+            2dup decide?
             [ over r-next ] [ over l-next ] if
             (merge)
         ] if