Re: What databases have taught me

From: Keith H Duggar <duggar_at_alum.mit.edu>
Date: 30 Jun 2006 16:33:44 -0700
Message-ID: <1151710424.593022.80650_at_b68g2000cwa.googlegroups.com>


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?

[Quoted] 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.

[Quoted] [Quoted] all functions operating on a given data type are part of the [Quoted] /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?

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

  • Keith -- Fraud 6
Received on Sat Jul 01 2006 - 01:33:44 CEST

Original text of this message