> 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