]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences: use each-integer and all-integers? instead of iota.
authorJohn Benediktsson <mrjbq7@gmail.com>
Fri, 22 Mar 2013 21:23:08 +0000 (14:23 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Fri, 22 Mar 2013 21:23:08 +0000 (14:23 -0700)
core/sequences/sequences.factor

index c5c8d78e6d88073d137efe9a1bb1546e152767e1..37ffdb34dc0f746b1b67c4eac10cce849a41a3f8 100644 (file)
@@ -789,8 +789,9 @@ PRIVATE>
 
 : reverse! ( seq -- seq )
     [
-        [ midpoint@ iota ] [ length ] [ ] tri
-        [ [ over - 1 - ] dip exchange-unsafe ] 2curry each
+        [ midpoint@ ] [ length ] [ ] tri
+        [ [ over - 1 - ] dip exchange-unsafe ] 2curry
+        each-integer
     ] keep ;
 
 : reverse ( seq -- newseq )
@@ -909,17 +910,16 @@ PRIVATE>
 
 <PRIVATE
 
-: (start) ( subseq seq n -- subseq seq ? )
-    pick length iota [
+: (start) ( subseq seq n length -- subseq seq ? )
+    [
         [ 3dup ] dip [ + swap nth-unsafe ] keep rot nth-unsafe =
-    ] all? nip ; inline
+    ] all-integers? nip ; inline
 
 PRIVATE>
 
 : start* ( subseq seq n -- i )
-    pick length pick length swap - 1 + iota
-    [ (start) ] find-from
-    swap [ 3drop ] dip ;
+    pick length [ pick length swap - 1 + ] keep
+    [ (start) ] curry (find-integer) 2nip ;
 
 : start ( subseq seq -- i ) 0 start* ; inline