I have a question about the logic behind the behavior of inrange(z,a,b) when a, b, or z is missing. My question is just out of curiosity.
The manual states the following:
This seems like very unusual behavior. Why does it follow these rules? Is it a consequence of the implementation being simple/fast or was it written to produce these outcomes as part of some intended logical boolean conditions in some common workflow? If its the latter, what are those logical conditions/workflow?
The manual states the following:
The following ordered rules apply:
z > . returns 0.
a > . and b = . returns 1.
a > . returns 1 if z < b; otherwise, it returns 0.
b > . returns 1 if a < z; otherwise, it returns 0.
Otherwise, 1 is returned if a < z < b.
If the arguments are strings, "." is interpreted as "".
z > . returns 0.
a > . and b = . returns 1.
a > . returns 1 if z < b; otherwise, it returns 0.
b > . returns 1 if a < z; otherwise, it returns 0.
Otherwise, 1 is returned if a < z < b.
If the arguments are strings, "." is interpreted as "".
Comment