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

Reply via email to