Martin Rubey <[EMAIL PROTECTED]> writes: | Gabriel Dos Reis <[EMAIL PROTECTED]> writes: | | > | In any case, | > | | > | + uf: SUP | > | for uf in listpol repeat | > | --note uf and d not necessarily primitive | > | degree gcd(uf,d) =0 => nolift:=false | > | | > | looks very strange to me. I'd really prefer | > | | > | for free uf in listpol repeat | > | --note uf and d not necessarily primitive | > | degree gcd(uf,d) =0 => nolift:=false | > | > What is the fundamental difference? | | (Warning: feelings and beliefs follow!) | | For me -- as a reader -- the "uf: SUP" does not highlight the fact that uf is | going to be used after the loop. The "free" keyword (which exists at least in | the interpreted language already, I think), does that much more clearly.
My reading of the Aldor reference says that `free' works by picking an *existing* variable from the context. So, my reading of the Aldor reference is that you still needs a declaration from enclosing scope. As I noted earlier, I don't seem to find a place where the reference manual specifies what happens when there is no existing declaration. In conclusion, it would seem that the difference is syntactic (additional keyword), as opposed to being semantic (e.g. fundamental). Note: As of the existing of `free' in the intepreter there are many keywords recognized by the new parser, without corresponding semantics definition. Try: i := -3 f() == for free i in 1..10 repeat 0 i i -- Gaby ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ open-axiom-devel mailing list open-axiom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open-axiom-devel