]> gitweb.factorcode.org Git - factor.git/commitdiff
eliminate roll/-roll from core
authorJoe Groff <arcata@gmail.com>
Fri, 30 Oct 2009 18:36:15 +0000 (13:36 -0500)
committerJoe Groff <arcata@gmail.com>
Fri, 30 Oct 2009 18:36:15 +0000 (13:36 -0500)
core/kernel/kernel-tests.factor
core/math/math.factor
core/sequences/sequences.factor

index c8e0fcd2a98c7e2355ca12a4ec4645ec092963a0..024254663ca0a28dadb1adff2183d2657c38005c 100644 (file)
@@ -113,7 +113,7 @@ IN: kernel.tests
     < [ [ 1 + ] 3dip (loop) ] [ 2drop 2drop ] if ; inline recursive
 
 : loop ( obj -- )
-    H{ } values swap [ dup length swap ] dip 0 -roll (loop) ;
+    H{ } values swap [ dup length swap ] dip [ 0 ] 3dip (loop) ;
 
 [ loop ] must-fail
 
index 8ef4f38f9aeac470ed8f69aac54d00092b4730c8..c1a8ba32f7c86ada75c686ceea9330f8ae933bfc 100755 (executable)
@@ -147,14 +147,16 @@ PRIVATE>
 
 : (find-integer) ( i n quot: ( i -- ? ) -- i )
     [
-        iterate-step roll
-        [ 2drop ] [ iterate-next (find-integer) ] if
+        iterate-step
+        [ [ ] ] 2dip
+        [ iterate-next (find-integer) ] 2curry bi-curry if
     ] [ 3drop f ] if-iterate? ; inline recursive
 
 : (all-integers?) ( i n quot: ( i -- ? ) -- ? )
     [
-        iterate-step roll
-        [ iterate-next (all-integers?) ] [ 3drop f ] if
+        iterate-step
+        [ iterate-next (all-integers?) ] 3curry
+        [ f ] if
     ] [ 3drop t ] if-iterate? ; inline recursive
 
 : each-integer ( n quot -- )
index 557c6603ee264e3eef531742969a13bca395e07f..d773c9e7d3d493a6ce2be14a720b6d20aeb68896 100755 (executable)
@@ -271,7 +271,8 @@ ERROR: integer-length-expected obj ;
     dup integer? [ integer-length-expected ] unless ; inline
 
 : ((copy)) ( dst i src j n -- )
-    dup -roll + swap nth-unsafe -roll + swap set-nth-unsafe ; inline
+    [ + swap nth-unsafe [ ] curry 2dip ] keep
+    + swap set-nth-unsafe ; inline
 
 : 5bi ( a b c d e x y -- )
     bi-curry bi-curry bi-curry bi-curry bi ; inline
@@ -281,9 +282,9 @@ ERROR: integer-length-expected obj ;
     inline recursive
 
 : prepare-subseq ( from to seq -- dst i src j n )
-    #! The check-length call forces partial dispatch
-    [ [ swap - ] dip new-sequence dup 0 ] 3keep
-    -rot drop roll length check-length ; inline
+    [ over - ] dip
+    [ new-sequence 0 rot ] 2keep
+    [ ] curry 2dip check-length ; inline
 
 : check-copy ( src n dst -- )
     over 0 < [ bounds-error ] when