>>> My view on scoping is that

>>>    b:Integer:=1
>>>    b:Float:=2

>>> in the same scope should be an error.
>> Why?

> Which one to pick?  There are at least three different answers simulatenously
> in all AXIOM systems,
> I'm consistently picking one.
> We had this discussion before.

Right. I actually don't understand why that is a problem.
Does it have to do with being a 'variable' vs. being a 'constant'?

But at least if I defined constants it should be no problem as in the 
following program.

#include "aldor"
#include "aldorio"
f(a: Integer): (Integer, DoubleFloat) == {
   b: Integer     == 2;
   b: DoubleFloat == 7.0;
   (b, b);
}
import from Integer, DoubleFloat;
(i, d) := f(1);
stdout << i << ", " << d << newline;

It is completely clear what the last b's are.
Wouldn't you accept such a program?

The aldor compiler also doesn't let me have two variables with the same 
name and different type in the scope. And I would like to understand why 
it is allowed for constants but forbidden for variables. Where is the 
problem?

Ralf

-------------------------------------------------------------------------
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