> From: Conrad Schneiker [mailto:schneik / us.ibm.com]
[...] 
> Matz wrote:
> 
> # I have two ideas, still not knowing which is better to solve this
> # problem.
> [...] 
> # The one is allowing explicit declaration of block local variables.
> # <a,b|c,d> is one choice of notations.  The other notation candidates
> # may be special block form({{}}), and special declarative assignment.
> # Special declarative assignment is something like:
> # 
> #   {
> #     e = 1    # e may or may not be local to the block
> #     f := 2   # f is always local to this block
> #   }
> 
> I like this, but I would like to see the roles of '=' and ':='
> reversed, since I would like everything local by default, and I would
> prefer to use '=' for the most common case. Unfortunately that
> wouldn't automatically be backwards compatible.

I very much like   ``:='' since it is very explicit  (and Ruby
has already tooo many implicities in IMO) - you immediately know
that it must have something to-do with variable assignment since 
``:=''  is the sole assignment operator in many CS-languages.

The intent of stuff like < a,b| c,d> , {{...}}} etc.  versus |a,b|
is not clear at all.     

I also like the idea of ``let'' see Hibschman's post but I would
prefer something along the lines of 
{
  e =1
 local  a =1;b =1; c =1  in  # of course multiple assignements 
 .. bla, bla                 # a,b,c = 1,1,1  would work too
  end
} 
since it's easy to nest this ...


Christoph