Pierangelo Masarati wrote:
Howard Chu wrote:
"If (x) then (y)" is the complete definition of the behavior. You are looking for explanations for "If (!x)", but it should be well understood that such cases are irrelevant given this definition.
That's actually an if (x) and (!y) then (z). What is missing is if (x) and (y) (which happens to be (!z), but it could be anything...)
Yes, but "anything" would require extra work. (Kinda like #pragma in gcc 1.x would start up NetHack, since the C spec said the behavior was totally implementation defined.)
Nor does it make sense for any other outcome to exist. E.g. with your example, you're supposing the possibility that "if (x) and (y) then (z)" but then the outcome is identical for both "if (x) and (!y)" and "if (x) and (y)" which makes y completely irrelevant. Again, nobody would go to the bother of jumping thru the hoops for these extra conditions if they are ultimately irrelevant.