On 06/18/2008 01:37 PM, Bill Page wrote:
> On 6/18/08, Ralf Hemmecke wrote:
>> ...
>> Bill Page wrote:
>>> That category that plays this role in Axiom is called Type
>>> (1) -> )sh Type
>>> Type is a category constructor
>> Hmmm, maybe I mix again Aldor and SPAD...
>>
>> See section 7.7 AUG:
>> Type: A type S satisfies the language-defined type Type if S is
>> the type of a domain or category. In other words, all domains
>> and categories are types.
>>
>> Is this really different for SPAD? (I am not saying anything about the
>> interpreter.)
>
> No, I think it is the same. Both domains and categories satisfy Type, e.g.
>
> (1) -> SetCategory has Type
>
> (1) true
> Type: Boolean
> (2) -> Integer has Type
>
> (2) true
> Type: Boolean
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.
%8 >> Cat:Category == with;
%11 >> Integer
() @ Join(
PrimitiveType with
coerce: BInt -> %
coerce: % -> BInt
== add ()
,
IntegerType with export to IntegerSegment(%)
== add ()
)
%12 >> Integer has Cat
F @ Boolean
%12 >> Integer has Cat
F @ Boolean
Comp: 0 msec, Interp: 160 msec
%13 >> PrimitiveType has Cat
^
[L18 C1] #1 (Error) No meaning for identifier `PrimitiveType'.
There is actually a hidden bug in the List constructor if it works over
categories.
L: List OutputType := [Integer, String]
because the List constructor is defined as something like
List(T: Type): with {
if T has Output then ...
} == add { ... }
and that is undefined according to the AUG if T is a category.
Ralf
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
open-axiom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel