|
|
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 09:01:17 GMT-7 |
||
Note: Re: Type is not an Aldor-domain? |
added:
From BillPage Tue Jul 8 09:01:17 -0700 2008
From: Bill Page
Date: Tue, 08 Jul 2008 09:01:17 -0700
Subject: Re: Type is not an Aldor-domain?
Message-ID: <20080708090117-0700@axiom-wiki.newsynthesis.org>
The fact that 'Type' is a domain certainly does not make domain
and type interchangeable. Objects of the domain 'Type' are
themselves either domains **or** categories, so type and domain
are still not interchangeable since categories are not domains.
Could you explain why you claim that "Type is not an Aldor-domain".
Is this only a personal preference? To me: "If it talks like a duck
and it looks like a duck, its a duck...". In this case the compiler
output, the library definitions, and quotations from the primary
developer all agree::
Type has with {};
returns true.
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.
That conflicts the above statement that Type
is a domain, but is in line with the
two-level domain/category model.
See also Sections 7.8 (Domains) and 7.9 (Categories) of the Aldor User Guide.
I haven't (yet) found a sentence that says that Type
or Category
are domains.
Every value in Aldor is a member of a unique domain which determines the interpretation of its data.
All type values have ``Type'' as their unique base type. As with all other values, it is the unique base type which determines how values are to be represented.
The language allows categories to be treated as normal values and allows names to refer to categories. A category (by definition) is a value of the Aldor built-in type Category.
Type
being a type. But Type
is not an Aldor-domain.
Maybe it is a domain in a broader sense, but that sense is only vaguely defined, if at all.
I would like not to use domain and type interchangeably.
Type
is a domain certainly does not make domain
and type interchangeable. Objects of the domain Type
are
themselves either domains or categories, so type and domain
are still not interchangeable since categories are not domains.
Could you explain why you claim that "Type is not an Aldor-domain". Is this only a personal preference? To me: "If it talks like a duck and it looks like a duck, its a duck...". In this case the compiler output, the library definitions, and quotations from the primary developer all agree:
Type has with {};
returns true.