>> I do not like the idea. Adding magic just to save typing is only a good >> idea if the magic is beautiful. This magic is not. > >You can already write proc {|@a,@b,@c|}. Do you think that feature >should be removed? Yes, but you can also write: proc {|(a,b),c[2]|} If we want to add functionality to parameter assignment, I think the best choice is not to add magic for special cases like "@a", but instead go all the way and remove the differences between parameter assignment and ordinary assignment altoghether. This would mean allowing function declarations such as: def f((a,b),c[2]) But also that ordinary assignment would have to be changed to support the functionality of parameter assignment, such as (a, b=2, c=4) = *[3, 3] # would set a = 3, b = 3, c = 4 and (a, &b) = 3 {|x| p x} # would set b = proc {|x| p x} This would make the language more orthogonal, but would probably require major changes in the implementation. Also I'm not sure that it is such a good idea. I'm used to thinking of assignment and parameter passing as different concepts, but that might just be prejudice. What do you others say? // Niklas