Add help for math.ranges

Eduardo Cavazos 2008-03-20 17:33:01 -06:00
parent 0c490161b4
commit 010856c870
2 changed files with 29 additions and 8 deletions

View File

@ -0,0 +1,21 @@
USING: help.syntax help.markup ;
IN: math.ranges
ARTICLE: "ranges" "Ranges"
"A " { $emphasis "range" } " is a virtual sequence with elements "
"ranging from a to b by step."
$nl
"Creating ranges:"
{ $subsection <range> }
{ $subsection [a,b] }
{ $subsection (a,b] }
{ $subsection [a,b) }
{ $subsection (a,b) }
{ $subsection [0,b] }
{ $subsection [1,b] }
{ $subsection [0,b) } ;

View File

@ -3,7 +3,7 @@ IN: math.ranges
TUPLE: range from length step ;
: <range> ( from to step -- range )
: <range> ( a b step -- range )
>r over - r>
[ / 1+ 0 max >integer ] keep
range construct-boa ;
@ -22,19 +22,19 @@ INSTANCE: range immutable-sequence
: ,b) dup neg rot + swap ; inline
: [a,b] twiddle <range> ;
: [a,b] ( a b -- range ) twiddle <range> ;
: (a,b] twiddle (a, <range> ;
: (a,b] ( a b -- range ) twiddle (a, <range> ;
: [a,b) twiddle ,b) <range> ;
: [a,b) ( a b -- range ) twiddle ,b) <range> ;
: (a,b) twiddle (a, ,b) <range> ;
: (a,b) ( a b -- range ) twiddle (a, ,b) <range> ;
: [0,b] 0 swap [a,b] ;
: [0,b] ( b -- range ) 0 swap [a,b] ;
: [1,b] 1 swap [a,b] ;
: [1,b] ( b -- range ) 1 swap [a,b] ;
: [0,b) 0 swap [a,b) ;
: [0,b) ( b -- range ) 0 swap [a,b) ;
: range-increasing? ( range -- ? )
range-step 0 > ;