|
|
last edited 16 years ago by Bill Page |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ||
Editor: Bill Page
Time: 2008/07/08 06:57:14 GMT-7 |
||
Note: Each value belongs to ... its domain |
changed: -Each value belongs to some unique type, known as its domain, and the -domains of expressions can be inferred statically. Each domain is -itself a value belonging to the domain Type. Domains may additionally The type system has two levels: Each value belongs to some unique type, known as its domain, and the domains of expressions can be inferred statically. Each domain is itself a value belonging to the domain Type. Domains may additionally changed: - - Categories can specify properties of domains such as which operations they export, and are used to specify interfaces and inheritance hierarchies. -- The biggest difference between the two-level domain/category model and the single-level subclass/class model is that a domain is an element of a category, whereas a subclass is a subset of a class. This difference eliminates a number of problems in the definition of functions with multiple related arguments.
There seems to be different understandings of Type, domain, category, Category, etc. around. Here is an attempt to collect all these different opinions in order to make discussion about them clearer.
A category is an L-type whose type is the language-defined constant Category
.
A domain is an L-type whose type is a category.
An L-type is either a category, a domain or the language-defined constants Category
and Type
.
Any L-type is of type Type
.
I wrote L-type to mean type in the language, either Aldor or SPAD.