Michael Geary wrote: > Suppose you have zero quarts of milk in your refrigerator. I am visiting and > I ask: > > Got milk? if (milk_qty > 0) puts "yes" else puts no" end Wouldn't that be the ruby translation of what you're asking? Or maybe you don't care if milk_qty is negative: if (milk_qty == 0) puts "no" else puts "yes" end What you're asking is "as a general rule, when I convert a number into a boolean, what value should it have". And why is it natural that zero be naturally 'false' while every other number be naturally 'true'. This is the sort of thing you can't give a general rule for that will always work. Zero as false makes sense for converting from the number of bottles of milk to answer the question "do you have any milk?" On the other hand, it doesn't make as much sense for translating the score of a sports game to "has the game started". In this case, any number means that the game as started. What about "Are we doing better than last time?" In this case, if the number is positive, then the answer is 'true', if the number is negative, then the answer is 'false'. Does that mean that the boolean representation of '-1' should be false, as well as every other negative number? Converting numbers to boolean values is a problem-specific issue, and shouldn't have a general case. What's so difficult about using tests like (foo == 0) and (foo > 0) anyhow? Ben