diff --git a/extra/sequences/extras/extras-tests.factor b/extra/sequences/extras/extras-tests.factor index b051a159d1..d9b0b9c27c 100644 --- a/extra/sequences/extras/extras-tests.factor +++ b/extra/sequences/extras/extras-tests.factor @@ -146,3 +146,6 @@ IN: sequences.extras.tests { V{ 97 115 100 102 } } [ "asdf" [ [ read1 ] V{ } loop>sequence ] with-string-reader ] unit-test + +{ "" } [ { } "" reverse-as ] unit-test +{ "ABC" } [ { 67 66 65 } "" reverse-as ] unit-test diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index 3bebf46973..48b83c96ad 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -315,3 +315,13 @@ INSTANCE: odds immutable-sequence : loop>array ( quot -- seq ) { } loop>sequence ; inline + + + +: reverse-as ( seq exemplar -- newseq ) + [ (reverse) ] [ like ] bi* ;