> No, sorry.  As far as I know, in SPAD,
> 
>   => iterate            (in fact, not sure about that one)
> 
>   => "next"
> 
>   => "iterate"
> 
>   => nil
> 
>   => "leave"
> 
> are all equivalent.  And I proposed to make them all the same.  The semantics
> of => should *not* be changed.

Of course the semantics is the same. The first should be preferred, 
because it says something about the loop that contains the block.
All of the other forms are just of the type

   => somevalue;

That said, it would be also equivalent to write

   => 42;

in this place.

So in

   for a in list repeat (x; condition => somevalue; y)

somevalue is irrelevant. This form just says that y is not evaluated if 
condition is true.

Clearly, in a loop all forms except "=> iterate" are confusing.

As I learned from this thread, the leave keyword from SPAD has already 
been replaced by the break keyword.

By the way, SPAD has another place where something looks like a string 
literal and is actually meant to be a function name. See catdef.spad.

AbelianSemiGroup(): Category == SetCategory with
     --operations
       "+": (%,%) -> %      ++ x+y computes the sum of x and y.
       "*": (PositiveInteger,%) -> %
     add
       ...

Or does SPAD allow to write

       "+*": (%, %) -> %

and then use

      "+*"(x,y)

?


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to