Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Usenet -> comp.databases.theory -> Re: What databases have taught me

Re: What databases have taught me

From: Keith H Duggar <>
Date: 30 Jun 2006 16:33:44 -0700
Message-ID: <>

Marshall wrote:
> Dmitry A. Kazakov wrote:
> > N is a type, but in a different meaning (it still has
> > some operations defined). But this type is different
> > from one of (N, +). (N, *) is yet another type. (N, +,
> > *) is a fourth type. You've god the idea, I think.
> Okay. So if I have a type N, with a minimal set of
> operators (just "successor") and another module extends N
> with a + function, and a different module extends N with a
> * function, then we have three different types of N, is
> that correct? Have we broken interoperability between N
> values coming from the three modules now? If not, in what
> sense are they different types?

Or when I load your module and define an arbitrary function on your type N have I now defined a new type? Of course not. Which is why I think Dmitry's notion of type is somewhat useless in a programming context. Similary, Bob's view that

Bob Badour wrote :
> Marshall wrote :
> > given:
> > f: A, B -> C
> > is f part of the defintion or A, or of B, or both? What
> > about C? Just curious.
> >
> f is defined on all three A, B and C. Thus f is part of
> the definitions of three data types.

all functions operating on a given data type are part of the /definition/ of that data type, doesn't seem useful, at least in a programming context. Why are we not free to choose which operations /define/ a data type and which are merely /auxiliary/ or /derived/. How is it useful to think that anytime we define functions we are redefining the types of it's arguments?

(Note I'm treating function/operator and argument/operand as synonymous in the above.)

Received on Fri Jun 30 2006 - 18:33:44 CDT

Original text of this message