diff --git a/basis/math/ranges/ranges.factor b/basis/math/ranges/ranges.factor index b095eae5d5..ca5fcb2153 100644 --- a/basis/math/ranges/ranges.factor +++ b/basis/math/ranges/ranges.factor @@ -9,8 +9,16 @@ TUPLE: range { length read-only } { step read-only } ; + + : ( a b step -- range ) - [ over - ] dip [ /i 1 + 0 max ] keep range boa ; inline + [ over - ] dip + [ sign/mod 0 < [ 1 + ] unless 0 max ] keep + range boa ; inline M: range length ( seq -- n ) length>> ; inline