Re: The naive test for equality

From: Marshall Spight <marshall.spight_at_gmail.com>
Date: 2 Aug 2005 11:49:37 -0700
Message-ID: <1123008577.437721.146290_at_g43g2000cwa.googlegroups.com>


Paul wrote:
> Marshall Spight wrote:
> > Sure. Specifically, it's an equivalence relation. Let's distinguish
> > between the equality relation specifically and equivalence relations
> > in general. Equality is a much simpler thing.
>
> Is it, though?

I wasn't clear whether you were questioning my "it's an equivalence relation" or my "equality is [simple]."

> We think about 1/2 = 2/4 fine even though they have
> different representations.

Sure, because they are the same value. Thining too much about representation can only confuse you. :-)

> Maybe you mean "identity", often shown using
> a variant of the equals sign with three lines instead of two?

No, I certainly do not mean identity. In fact, I specifically reject the concept of identity in the field of data management. It's useful in OOP to distinguish between equality and identity, but introducing identity in data management is a disaster.

> It's rare that we use the "equals" symbol to compare two things with
> identical representation: 1=1, we'd use the "identity" symbol instead.

I not sure I agree that it is rare. It is certainly correct.

> It's all about levels of abstraction: equality at the physical layer
> (representation) may differ from equality at the logical layer (value).

Sure. Note I am not discussing the physical; I'm discussing the logical and conceptual.

I said:
"I guess what makes it so complicated is that we're used to having to work with objects and memory locations and aliasing and so forth. These are all *implementation* complexities, though; the interface remains blindingly simple."

> So for the underlying relational engine to compare two values for
> equality, it can't in general stay in the physical layer; it has just
> jump up into the logical layer, do the comparison, and then jump back
> down to the physical layer again.

I am unclear as to what you are saying here. The implementation only operates at the implementation level. The implementation implements the logical level, or "interface." I don't know what you mean by "jump up."

Sure, the implementation of a function to test for equality might be more than just a binary region compare, but that doesn't mean that it's not still the implementation.

Marshall Received on Tue Aug 02 2005 - 20:49:37 CEST

Original text of this message