]> gitweb.factorcode.org Git - factor.git/commitdiff
Remove some usages of slip combinators from the core
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Thu, 5 Feb 2009 09:29:59 +0000 (03:29 -0600)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Thu, 5 Feb 2009 09:29:59 +0000 (03:29 -0600)
core/graphs/graphs.factor
core/io/encodings/encodings.factor
core/kernel/kernel.factor
core/math/math.factor
core/sequences/sequences.factor

index f2003641de3408d9b5da2e3dda840fd15a454c5c..fabe2afb4ddf34c15b2ed46ea19915c5e34c92d0 100644 (file)
@@ -42,7 +42,7 @@ SYMBOL: previous
         2drop
     ] [
         over previous get conjoin
-        dup slip
+        [ call ] keep
         [ nip (closure) ] curry assoc-each
     ] if ; inline recursive
 
index ab9d297d6cd8f926ef458a6b3c454149c700234f..4385bab9d6579628ee9f12fc2663a3e624d25cd0 100644 (file)
@@ -61,9 +61,8 @@ M: decoder stream-read1
 : (read) ( n quot -- n string )
     over 0 <string> [
         [
-            slip over
-            [ swapd set-nth-unsafe f ] [ 3drop t ] if
-        ] 2curry find-integer
+            over [ swapd set-nth-unsafe f ] [ 3drop t ] if
+        ] curry compose find-integer
     ] keep ; inline
 
 : finish-read ( n string -- string/f )
index 0432a5250cf12f20143ef8d061d9ffaff36db5e4..886bb3948ed49b6fb5854ae39350963307c532a1 100644 (file)
@@ -1,4 +1,4 @@
-! Copyright (C) 2004, 2008 Slava Pestov.
+! Copyright (C) 2004, 2009 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: kernel.private slots.private math.private
 classes.tuple.private ;
@@ -227,7 +227,7 @@ PRIVATE>
 
 ! Loops
 : loop ( pred: ( -- ? ) -- )
-    dup slip swap [ loop ] [ drop ] if ; inline recursive
+    [ call ] keep [ loop ] curry when ; inline recursive
 
 : do ( pred body tail -- pred body tail )
     over 3dip ; inline
index 322537b5516e2f0572751804c6f24c602979f396..42786ffc9db8b255e25dfc108ff597c2d7e708a5 100755 (executable)
@@ -120,7 +120,7 @@ M: float fp-infinity? ( float -- ? )
 
 : iterate-step ( i n quot -- i n quot )
     #! Apply quot to i, keep i and quot, hide n.
-    swap [ 2dup 2slip ] dip swap ; inline
+    [ nip call ] 3keep ; inline
 
 : iterate-next ( i n quot -- i' n quot ) [ 1+ ] 2dip ; inline
 
@@ -158,7 +158,7 @@ PRIVATE>
     over 0 < [
         2drop f
     ] [
-        2dup 2slip rot [
+        [ call ] 2keep rot [
             drop
         ] [
             [ 1- ] dip find-last-integer
index 63df6c9d27a674734e2afe0aafbc65e94c899391..44cc2595a90c85a7c70ec3b999fd885c830ac076 100755 (executable)
@@ -416,7 +416,7 @@ PRIVATE>
     over map-into ; inline
 
 : accumulate ( seq identity quot -- final newseq )
-    swapd [ pick slip ] curry map ; inline
+    swapd [ [ call ] [ 2drop ] 3bi ] curry map ; inline
 
 : 2each ( seq1 seq2 quot -- )
     (2each) each-integer ; inline
@@ -825,7 +825,8 @@ PRIVATE>
     [ but-last-slice ] [ peek ] bi ; inline
 
 : <flat-slice> ( seq -- slice )
-    dup slice? [ { } like ] when 0 over length rot <slice> ;
+    dup slice? [ { } like ] when
+    [ drop 0 ] [ length ] [ ] tri <slice> ;
     inline
 
 <PRIVATE
@@ -866,7 +867,8 @@ PRIVATE>
 
 : supremum ( seq -- n ) [ ] [ max ] map-reduce ;
 
-: sigma ( seq quot -- n ) [ 0 ] 2dip [ rot slip + ] curry each ; inline
+: sigma ( seq quot -- n )
+    [ 0 ] 2dip [ dip + ] curry [ swap ] prepose each ; inline
 
 : count ( seq quot -- n ) [ 1 0 ? ] compose sigma ; inline