I think the whole discussion is misleading.

A function has a source and target type. So, if there is

/: (Integer, Integer) -> Fraction Integer

than the return type is *always* Fraction(Integer), also for something 
like 8/4 or 1/1.

Why you see something else, is probably, because the interpreter adds 
some conversions. That is mostly OK if you work as a user on the command 
line, but in SPAD I would hate it since you would never know what type 
you get if you apply a function like - or /.

All I want to say is that here are some hidden coercions taking place so 
the returned types are just what the interpreter is able to figure out.

Ralf

On 07/16/2008 05:12 PM, Yixin Cao wrote:
> 
> 
> On Wed, Jul 16, 2008 at 10:04 AM, Bill Page <[EMAIL PROTECTED] 
> <mailto:[EMAIL PROTECTED]>> wrote:
> 
>     On Wed, Jul 16, 2008 at 10:24 AM, Yixin Cao wrote:
>      > Howdy,
>      >
>      > (1) -> 8-4
>      >    (1)  4
>      >                                                         Type:
>      > PositiveInteger
>      > (2) -> 8/4
>      >    (2)  2
>      >                                                        Type: Fraction
>      > Integer
>      > (3) ->
>      > (3) -> 4-8
>      >    (3)  - 4
>      >                                                                 Type:
>      > Integer
>      >
>      > - is only a partial function in PositiveInteger. In OpenAxiom, 8-4
>      > returns PositiveInteger, while 4-8 goes into Integer automatically.
>      >
>      > / is partial in Integer, but in OpenAxiom, / always returns Fraction
>      > Integer, even 8/4.
>      >
> 
>     There is no such thing as a "partial function" in Axiom. I guess you
>     mean a function that returns, for example:
> 
>      Union(Integer, "failed")
> 
> I treat this as total. See section 2.1.9 in P16 of "Types and 
> Programming Languages" by Pierce.
> 
> 
> 
>      >
>      > Why not 8/4 returns 2(Integer), while 4/8 returns 1/2(Fraction
>     Integer)?
>      >
> 
>     There is no function / that returns Integer.
> 
> There is no function - which returns PositiveInteger either, right?
> 
> 
> 
>     Regards,
>     Bill Page.
> 
> 
> 
> ------------------------------------------------------------------------
> 
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> open-axiom-devel mailing list
> open-axiom-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to