[Aldor-l] [open-axiom-devel] [#428] 'Domain' in 'SetCategory'?
Ralf Hemmecke
ralf at hemmecke.de
Wed Jun 18 13:21:29 EDT 2008
Dear Stephen,
could you say a few words to the topic why Aldor only allows
<domain> has <category>
instead of
<domain or category> has <category>
?
Ralf
>> See AUG page 96:
>>
>> Has expressions
>> A "has" expression has the following form:
>> dom has cat
>> where dom is a domain-valued expression, and cat is a category-valued
>> expression.
>>
>> So at least "has" is different in the Axiom interpreter or in SPAD.
>>
>
> You are right, there is a difference between Aldor and OpenAxiom. In
> Aldor Type is not a category - it is a domain!
>
> root at sage:~# cat mylibs.as
> #include "aldor"
> #include "aldorinterp"
> #include "algebra"
>
> root at sage:~# aldor -gloop
> Aldor
>
> Copyright (c) 1990-2007 Aldor Software Organization Ltd (Aldor.org).
>
> Release: Aldor(C) version 1.1.0 for LINUX(glibc2.3)
> Type "#int help" for more details.
> %1 >> #include "mylibs"
> Comp: 260 msec, Interp: 0 msec
> %2 >> Type
> () @
> with
> == add ()
>
> And subtypes of Type are categories, so like in OpenAxiom Category is
> also a domain - the domain of subtypes of Type.
>
> %3 >> Category
> () @
> with
> == add ()
>
> Domains are the members of Type and therefore also are members of one
> or more Category.
>
> For example, in
>
> http://www.csd.uwo.ca/~watt/pub/reprints/2003-cahand-aldor.pdf
>
> Stephen Watt wrote:
>
> "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
> belong to some number of subtypes (of Type), known as categories."
>
>> %8 >> Cat:Category == with;
>>
>> %11 >> Integer
>> () @ Join(
>> PrimitiveType with
>> coerce: BInt -> %
>> coerce: % -> BInt
>> == add ()
>> ,
>> IntegerType with export to IntegerSegment(%)
>> == add ()
>> )
>
> http://www.aldor.org/docs/HTML/chap7.html#7
>
> Aldor does not use the name 'Domain' to refer to any type. So far I
> have not found any explicit name for the category
>
> with {}
>
> so I guess it is a cruel little comedy that 'Domain' seems like a good
> name for the top of the *category* hierachy in Aldor though it is
> called 'Type' in Axiom. Meanwhile 'Domain' in Axiom corresponds to
> 'Type', and 'Type' in Aldor is a domain... ;-(
>
>> ...
>
> Ralf, you are also right that 'has' has a more restricted meaning in
> Aldor than in Axiom. In Axiom we can write:
>
> <domain> or <category> has <category> or <attribute>
>
> an <attribute> is just a named category with no exports.
>
> In the Axiom interpreter
>
> <category 1> has <category 2>
>
> is true if <category 1> is a subtype of <category 2>
>
> <domain> has <category>
>
> is true if <category> appears in the a 'Join' expression or to the
> left of the keyword 'with'. This is described in
More information about the Aldor-l
mailing list