27 Jan 2001
(updated 31 Jul 2003 at 00:48 UTC) »
graydon:Yes, I think
the right question
is: "why isn't '() coerced to #f." More generally, why
isn't the coerce-to-boolean form specialized for
every type? The whole idea of everything being coerced to
#t except for #f, in a way already violates the disjointness of types. If the system were totally pure, it would raise an error when anything
other than a boolean constant is tested for truth. So,
there is already a coerce-to-boolean form for each
type; it just happens to be a constant function. I
don't think it is any worse to define a more
interesting coerceion function, different for each type.
I saw an interesting lecture yesterday on cognitive
illusions in human/computer interaction; these are places
where the mind incorrectly applys a hueristic to come up
with a solution, instead of using logical thought.
One place this pops up is conditional probability. Write
down the solution to the following problem before you check
Your friend has two rabbits. One of them is a girl.
is the probability the other one is a girl too?
For now, I've put the answer at the bottom of notes on
my account page, because I can't figure out which of the
allowed tags will make background black to do the hidden
Update: sarum is
friend wouldn't pick the rabbits randomly. So lets say,
your friend has a rabbit that just had two children.
If you don't believe the answer, think about these other two problems, and how they are different.
There are two rabbits in a cage. The bigger one is a
girl. What is the probability the other one is a girl too?
Update: and to clarify this one too, this question is not about rabbit physiology.
There are two rabbits in a hat. You pull one out, it is
a girl. What is the probability the other one is a girl too?
Really tough to wrap your mind around, huh? If you still
don't believe me, I'll make you a truth table.