]> gitweb.factorcode.org Git - factor.git/commitdiff
sequences.extras: add filter-all-subseqs, filter-all-subseqs-range, map-like
authorDoug Coleman <doug.coleman@gmail.com>
Fri, 21 Sep 2012 00:45:38 +0000 (17:45 -0700)
committerDoug Coleman <doug.coleman@gmail.com>
Fri, 21 Sep 2012 00:46:34 +0000 (17:46 -0700)
extra/sequences/extras/extras.factor

index 48b83c96ad620e75dcc5800044a27058ac8a7c1a..1e5659cb143630d99b643e76ac4b7af195c5bf76 100644 (file)
@@ -59,6 +59,17 @@ IN: sequences.extras
         ] each
     ] each ;
 
+: map-like ( seq exemplar -- seq' )
+    '[ _ like ] map ; inline
+
+: filter-all-subseqs-range ( ... seq range quot: ( ... x -- ... ) -- seq )
+    [
+        '[ <sliced-clumps> _ filter ] with map concat
+    ] 3keep 2drop map-like ; inline
+
+: filter-all-subseqs ( ... seq quot: ( ... x -- ... ) -- seq )
+    [ dup length [1,b] ] dip filter-all-subseqs-range ; inline
+
 :: longest-subseq ( seq1 seq2 -- subseq )
     seq1 length :> len1
     seq2 length :> len2