home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
rtsi.com
/
2014.01.www.rtsi.com.tar
/
www.rtsi.com
/
OS9
/
OSK
/
EFFO
/
pd6.lzh
/
TST
/
ranges.tst
< prev
next >
Wrap
Text File
|
1989-12-21
|
1KB
|
64 lines
.( Loading Ranges test...) cr
#include ranges.f83
#include blocks.f83
blocks ranges
.( 1: Create some typical ranges and print information about them) cr
1901 2099 RANGE YEAR_NUMBER ( Ranges for time and date)
1 12 RANGE MONTH_NUMBER
1 31 RANGE DAY_NUMBER
1 24 RANGE HOUR_NUMBER
1 60 RANGE MINUTE_NUMBER
1 60 RANGE SECOND_NUMBER
YEAR_NUMBER .range cr ( Print range intervals)
YEAR_NUMBER print cr ( Print range values)
MONTH_NUMBER .range cr ( Print range intervals)
MONTH_NUMBER print cr ( Print range values)
DAY_NUMBER .range cr ( Print range intervals)
DAY_NUMBER print cr ( Print range values)
.( 2: Count number of odd numbers in the ranges) cr
: #odd ( range -- n)
0 swap block[ 1 and if 1+ then ]; map ;
YEAR_NUMBER #odd .
MONTH_NUMBER #odd .
DAY_NUMBER #odd . cr
.( 3: Test membership function) cr
3 YEAR_NUMBER ?member .
3 MONTH_NUMBER ?member .
3 DAY_NUMBER ?member . cr
.( 4: Conditional iteration; print a sub-range) cr
: .sub.range ( upper range -- )
over over ?member
if block[ dup . over = ]; ?map
else
drop
then
drop ;
4 DAY_NUMBER .sub.range cr
.( 5: Union and intersections of ranges) cr
DAY_NUMBER YEAR_NUMBER ?intersection .
DAY_NUMBER YEAR_NUMBER intersection . .
DAY_NUMBER YEAR_NUMBER union . . cr
forth only