From ba2cf19e5aef27fc46ad03c8534447e2b9cb0454 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Thu, 20 Sep 2012 17:45:38 -0700 Subject: [PATCH] sequences.extras: add filter-all-subseqs, filter-all-subseqs-range, map-like --- extra/sequences/extras/extras.factor | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index 48b83c96ad..1e5659cb14 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -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 ) + [ + '[ _ 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