[Haskell-cafe] and  = True; or  = False
bjorn at buckwalter.se
Mon Apr 26 08:15:40 EDT 2010
Does it make good sense that 'and ' returns 'True' and 'or '
returns 'False'? The Haskell Road to Logic, Maths and Programming says
"The function or takes a list of truth values and returns True if at
least one member of the list equals True, while and takes a list of
truth values and returns True if all members of the list equal True."
"Should the conjunction of all elements of  count as true or false?
As true, for it is indeed (trivially) the case that all elements of 
are true. So the identity element for conjunction is True. Should the
disjunction of all elements of  count as true or false? As false,
for it is false that  contains an element which is true. Therefore,
the identity element for disjunction is False."
While the above reasoning is fine, and allows straight-forward
implementations, it isn't extremely convincing. In particular, it
isn't clear that, while simple, the definitions of the first paragraph
are the most sensible. Perhaps one of the more mathematically versed
readers on the Cafe could enlighten me?
What got me thinking about this was the apparently incorrect intuition
that 'and xs' would imply 'or xs'.
More information about the Haskell-Cafe