| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: What databases have taught me
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.)
![]() |
![]() |