On Fri, 01 Jun 2007 03:33:41 +0100, you wrote: >The question, however, still remains: why False = 0 and True 1? I >appreciate that it's so in boolean algebra but why? Why not True = 0 >and False = 1?
There is a correspondence between a Boolean algebra and an algebraic ring. If we identify 0 with FALSE and 1 with TRUE, then that correspondence leads to a natural identification of addition with EXCLUSIVE OR, and multiplication with AND: 0 + 0 = 0 FALSE XOR FALSE = FALSE 0 + 1 = 1 FALSE XOR TRUE = TRUE 1 + 0 = 1 TRUE XOR FALSE = TRUE 1 + 1 = 0 TRUE XOR TRUE = FALSE (carry is ignored) 0 * 0 = 0 FALSE AND FALSE = FALSE 0 * 1 = 0 FALSE AND TRUE = FALSE 1 * 0 = 0 TRUE AND FALSE = FALSE 1 * 1 = 1 TRUE AND TRUE = TRUE >A Boolean value denotees veracity whereas an ordered value concerns >magnitude (priority), indeed, order!! It is frequently desirable to enumerate things, even when those things don't have a well-defined order. In such cases, we have to impose an order, perhaps arbitrarily. Within a given programming context, it doesn't matter what we choose for our enumeration order, but it's generally best to go along with whatever de facto standard there is, if for no other reason than to avoid going insane. Steve Schafer Fenestra Technologies Corp. http://www.fenestra.com/ _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe