From 4b5b058c20fe40845992a960d96c34f5057bef0a Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Mon, 4 Apr 2016 11:05:28 -0700 Subject: [PATCH] sequences.extras: make rotate support negative n. --- extra/sequences/extras/extras-tests.factor | 2 +- extra/sequences/extras/extras.factor | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extra/sequences/extras/extras-tests.factor b/extra/sequences/extras/extras-tests.factor index 3d7c4ff36c..dfdc2837f9 100644 --- a/extra/sequences/extras/extras-tests.factor +++ b/extra/sequences/extras/extras-tests.factor @@ -75,7 +75,7 @@ IN: sequences.extras.tests { "hello" "hello" } [ "hello" dup 0 rotate ] unit-test { "hello" "llohe" } [ "hello" dup 2 rotate ] unit-test -[ "hello" dup -1 rotate ] must-fail +{ "hello" "ohell" } [ "hello" dup -1 rotate ] unit-test { "hello" } [ "hello" dup 0 rotate! ] unit-test { "lohel" } [ "hello" dup 3 rotate! ] unit-test diff --git a/extra/sequences/extras/extras.factor b/extra/sequences/extras/extras.factor index 6aca1b284c..b37ca03bd5 100644 --- a/extra/sequences/extras/extras.factor +++ b/extra/sequences/extras/extras.factor @@ -196,7 +196,7 @@ ERROR: slices-don't-touch slice1 slice2 ; ] if ; : rotate ( seq n -- seq' ) - cut prepend ; + dup 0 > [ cut ] [ abs cut* ] if prepend ; :: rotate! ( seq n -- ) n seq bounds-check length :> end -- 2.34.1