]> gitweb.factorcode.org Git - factor.git/commitdiff
splitting: cleanup duplicate code.
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 25 Jun 2013 22:17:00 +0000 (15:17 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 25 Jun 2013 22:17:44 +0000 (15:17 -0700)
core/splitting/splitting.factor
extra/splitting/extras/extras.factor

index c75b27263e8697b0f5fc4e2bd05189c600938e42..34ad2dbc5fc74339c36e6ef3e41690aa9b072151 100644 (file)
@@ -77,8 +77,8 @@ PRIVATE>
 
 <PRIVATE
 
-: (split) ( seq quot: ( ... elt -- ... ? ) slice-quot -- pieces )
-    pick [
+: (split) ( seq quot: ( ... elt -- ... ? ) slice-quot -- pieces )
+    [ 0 ] 3dip pick [
         swap curry [ keep 1 + swap ] curry [
             [ find-from drop dup ] 2curry [ keep -rot ] curry
         ] dip produce nip
@@ -89,10 +89,10 @@ PRIVATE>
 PRIVATE>
 
 : split-when ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
-    [ 0 ] 2dip [ subseq ] (split) ; inline
+    [ subseq ] (split) ; inline
 
 : split-when-slice ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
-    [ 0 ] 2dip [ <slice> ] (split) ; inline
+    [ <slice> ] (split) ; inline
 
 : split ( seq separators -- pieces )
     [ member? ] curry split-when ; inline
index e950a608bbddff9c2aa640e6dc1fe9dc9c19e4da..19d0fe68dcb7035bcf678ee0253691472f543dc8 100644 (file)
@@ -4,8 +4,8 @@ IN: splitting.extras
 
 <PRIVATE
 
-: (split*) ( seq quot: ( ... elt -- ... ? ) slice-quot -- pieces )
-    pick [
+: (split*) ( seq quot: ( ... elt -- ... ? ) slice-quot -- pieces )
+    [ 0 ] 3dip pick [
         swap curry [ [ 1 + ] when ] prepose [ 2keep ] curry
         [ 2dup = ] prepose [ [ 1 + ] when swap ] compose [
             [ find-from drop dup ] 2curry [ keep -rot ] curry
@@ -17,10 +17,10 @@ IN: splitting.extras
 PRIVATE>
 
 : split*-when ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
-    [ 0 ] 2dip [ subseq ] (split*) ; inline
+    [ subseq ] (split*) ; inline
 
 : split*-when-slice ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
-    [ 0 ] 2dip [ <slice> ] (split*) ; inline
+    [ <slice> ] (split*) ; inline
 
 : split* ( seq separators -- pieces )
     [ member? ] curry split*-when ; inline