On Wed, Jul 20, 2011 at 5:44 AM, Jesse Glick <[email protected]> wrote: > On 07/16/2011 08:59 PM, Matt Benson wrote: >> >> xor(true, false) == true >> xor(true, false, true) == false >> xor(true, false, true, false) == false >> >> Is this correct? > > Follows the usual semantics; cf.: > http://en.wikipedia.org/wiki/Exclusive_or#Associativity_and_commutativity > >> It would seem that semantically an xor over multiple >> nested conditions should mean that exactly one value should evaluate >> true in order for the xor operation to yield truth. > > Which is in fact the case in the examples you mentioned, but probably you > are thinking of > > xor(true, true, true) == true > > which is consistent with the algebraic definition, and the behavior of > Java's ^ operator for that matter. If you wanted a condition with the > semantics you describe, it should be named something else. >
Thanks, Jesse--I think you cleared it up in my head: and(x, y, z) => x & y & z or(x, y, z) => x | y | z xor(x, y, z) => x ^ y ^ z Thanks! Matt > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
