But then again people measure distance in feet and write dates as month day year :)
But then again people measure distance in feet and write dates as month day year :)
So there was a floor with rooms numbered 1xx and 0xx. There was also a floor below the 0xx floor. They just numbered it 00xx. And you could enter the building on any of those floors depending on what door you picked.
The class I taught was in 0005. Room 005 was someone's office. So on the first day of every semester we would have students waiting outside the door of 005 instead of 0005...
Floors 1 through 10 are "regular" floors. L is the lobby. P1 through P3 are the parking (basement) levels.
So you have three types: regular, lobby, and parking. And the elevator labels are of type regular | lobby | parking.
(Now you can't disagree with me because sum types are popular on HN, and I have framed this in terms of sum types.)
up: (regular | lobby | parking) -> (regular | lobby | parking)
down: (regular | lobby | parking) -> (regular | lobby | parking)
and which_way: (regular | lobby | parking) x (regular | lobby | parking) -> direction
If you use subset of integers you can just use operators inc, dec and <.Yeah I know it was a joke.
Hmm, are there actually an infinite number of floors? Do we need to switch to floating point?
Why separate the floors that are on the same level?
> Hmm, are there actually an infinite number of floors?
I assumed there isn't and that we use a subset of integers. If you have infinite number of floors - feel free to use full set of integers (if you have enough memory that is).
> Do we need to switch to floating point?
No point, if you have more than aleph0 floors - floats won't help you.
0 is ground floor.