.BG
.FN odometer
.TL
Multi-radix Counter
.CS
odometer(current, radix)
.AG current
integer vector; the current value of the counter.
.AG radix
integer vector; the values at which each "wheel" of the
odometer "turns over".
.PP
On the first call to `odometer', `current' should be all zeroes.
`odometer' will return all zeroes when it has completed its cycle.
.RT
the next value of the counter.
The counter is a vector of integers; the `i'th element is
always non-negative and less than `radix[i]'.
The first element of `current' is incremented; if it reaches `radix[1]'
it is reset to zero and the second element of `current' is incremented, and
so on.
.EX
# a function that returns the next second
# in hours, minutes, seconds
next.second \(<- function(current.time)
	odometer(current.time, c(60, 60, 24))
.WR
