diff --git a/extra/sequences/extras/extras-tests.factor b/extra/sequences/extras/extras-tests.factor index c8f794c3b0..9244d35daf 100644 --- a/extra/sequences/extras/extras-tests.factor +++ b/extra/sequences/extras/extras-tests.factor @@ -15,6 +15,8 @@ IN: sequences.extras.tests [ { "a" "ab" "abc" "abcd" "b" "bc" "bcd" "c" "cd" "d" } ] [ [ "abcd" [ , ] each-subseq ] { } make ] unit-test +{ B{ 115 } } [ 1 2 "asdf" B{ } subseq-as ] unit-test + [ "" ] [ "abc" "def" longest-subseq ] unit-test [ "abcd" ] [ "abcd" "abcde" longest-subseq ] unit-test [ "foo" ] [ "foo" "foobar" longest-subseq ] unit-test diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index e28a6977c0..9a5bd46688 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -44,6 +44,9 @@ IN: sequences.extras ] each ] each ; +: subseq-as ( from to seq exemplar -- subseq ) + [ check-slice subseq>copy (copy) ] dip like ; + : map-like ( seq exemplar -- seq' ) '[ _ like ] map ; inline