]> gitweb.factorcode.org Git - factor.git/commitdiff
Add 2map-into, 2change-each
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Tue, 22 Jul 2008 09:44:33 +0000 (04:44 -0500)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Tue, 22 Jul 2008 09:44:33 +0000 (04:44 -0500)
core/sequences/sequences.factor

index 349d68adc551a03bc351b81550bff7aa1765d272..c3126abf0de110b2f4687711a71a18744d95d03e 100755 (executable)
@@ -326,6 +326,9 @@ M: immutable-sequence clone-like like ;
     >r [ min-length ] 2keep r>
     [ >r 2nth-unsafe r> call ] 3curry ; inline
 
+: 2map-into ( seq1 seq2 quot into -- newseq )
+    >r (2each) r> collect ; inline
+
 : finish-find ( i seq -- i elt )
     over [ dupd nth-unsafe ] [ drop f ] if ; inline
 
@@ -382,12 +385,15 @@ PRIVATE>
     >r -rot r> 2each ; inline
 
 : 2map-as ( seq1 seq2 quot exemplar -- newseq )
-    >r (2each) over r>
-    [ [ collect ] keep ] new-like ; inline
+    >r 2over min-length r>
+    [ [ 2map-into ] keep ] new-like ; inline
 
 : 2map ( seq1 seq2 quot -- newseq )
     pick 2map-as ; inline
 
+: 2change-each ( seq1 seq2 quot -- newseq )
+    pick 2map-into ; inline
+
 : 2all? ( seq1 seq2 quot -- ? )
     (2each) all-integers? ; inline