diff --git a/core/classes/tuple/tuple-tests.factor b/core/classes/tuple/tuple-tests.factor index dc83a15e9b..2c584b7378 100755 --- a/core/classes/tuple/tuple-tests.factor +++ b/core/classes/tuple/tuple-tests.factor @@ -697,3 +697,7 @@ DEFER: error-y "forget-subclass-test" parse-stream drop ] unit-test + +[ ] [ + "IN: sequences TUPLE: reversed { seq read-only } ;" eval +] unit-test diff --git a/core/sequences/sequences.factor b/core/sequences/sequences.factor index c3126abf0d..8678c9c4ef 100755 --- a/core/sequences/sequences.factor +++ b/core/sequences/sequences.factor @@ -173,7 +173,12 @@ M: reversed length seq>> length ; INSTANCE: reversed virtual-sequence -: reverse ( seq -- newseq ) [ ] [ like ] bi ; +: reverse ( seq -- newseq ) + [ + dup [ length ] keep new-sequence + [ 0 swap copy ] keep + [ reverse-here ] keep + ] keep like ; ! A slice of another sequence. TUPLE: slice