axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Re: [Aldor-l] [Axiom-math] Are Fraction and Complex do


From: Christian Aistleitner
Subject: [Axiom-developer] Re: [Aldor-l] [Axiom-math] Are Fraction and Complex domains.
Date: Wed, 17 May 2006 15:02:57 +0200
User-agent: Opera Mail/9.00 (Linux)

Hello,

OK, I see now. It could be -- in the non functional setting -- that

a: NonFunctionalDomainConstructor Integer := something
b: NonFunctionalDomainConstructor Integer := otherthing

and NonFunctionalDomainConstructor exports an operation f(%, %), but I still
*shouldn't* be able to call f(a, b), since a and b come from different
instantiations of NonFunctionalDomainConstructor Integer?

yes.

(Not currently, since it seems that Aldor instantiates a Domain only another time, if the argument has changed.)

No. Sometimes, a domain is not re-instantiated, even if the argument changed ;)
See my Dom example:
http://www.aldor.org/pipermail/aldor-l/2006-May/000205.html

> I would imagine that Dom(x) and Dom(y) are the same, (i.e., instantiated > only once) if x and y are the same, i.e., if (eq x y) as opposed to (equal
> x y), but I'd be interested to find something about this in the
> documentation.

That's the main point ... what kind of "equals" does Aldor apply?
I do not know. Just look at the Dom example I gave.

which one?

http://www.aldor.org/pipermail/aldor-l/2006-May/000205.html

> I'd leave it unspecified.

Leaving compiler behaviour unspecified is a bad thing.

No, not necessarily. Maybe I should have said "undefined". In Lisp this is the case for many things. It's basically saying: "in principle it is an error, but don't expect that I throw an error message".

Thereby you specify it. You say the thing of interest is wrong. And you specify that an error might be thrown. But you must not rely on it. Specified.

No user would be allowed to rely on calling List( Integer ) two times would give an identical result.

I agree that I wouldn't leave *this* unspecified, but I could imagine saying:

* domains are "compatible" (i.e., you may use append in the example you gave
  above), if their arguments were identical. In this case, the domain is
  instantiated only once.

* if their arguments were not identical, the behaviour is unspecified

Such a definition would be contradicting the current implementation of the Aldor compiler :) And what do you mean by "identical"? The whole thing is terribly complicated (at least for me).

--
Kind regards,
Christian




reply via email to

[Prev in Thread] Current Thread [Next in Thread]