| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Notions of Type
Keith H Duggar wrote:
> Bob Badour wrote: >
> > > Sorry for this topic shift but that reminded me of something > specific I still would like to learn from you. I think maybe > my question may have slipped through the cracks. Here is the > excerpt from "What Databases Have Taught Me" > > Keith H Duggar wrote: >
> > When you have a chance I'd appreciate your thoughts. Oh, and > of course same goes for any other type theory enthusiasts > out there.
I don't recall saying that type theory failed in any manner. Perhaps you could point to where you reached that conclusion? Perhaps I misspoke, or perhaps the comment applies within a limited context.
My only objection to "type = algebraic structure" is the requirement for closure within a single type. For any type, we can define the algebra as the type and the subset of the type's operations that exhibit closure. In my view, the type includes the entire set of operations defined on the values of the type including those not exhibiting closure.
For instance, an operation might have a single character string operand with non-negative integers as result as is the case with the length operation. That operation is certainly part of the character string type and arguably part of the non-negative integer type. It is not part of any algebraic structure. Or do I misunderstand something?
Square root is part of the algebra for non-negative reals and for perfect squares but not for integers. It is, however, a valid operation on integers resulting in values of a different type.
Division is not part of the algebra for any type that includes zero as one of its values. Or is it?
Other than possibly the _Principle of Cautious Design_, I can think of no immediate objection to a type where the set of operations in the algebra is empty. On the other hand, it might be difficult to devise such a type that has any use. Received on Wed Aug 16 2006 - 16:50:57 CDT
![]() |
![]() |