David A. Black wrote: > Hi -- > > On Sat, 21 May 2005, Luca Pireddu wrote: > >> David A. Black wrote: >> >>> Hi -- >>> >>> On Sat, 21 May 2005, Eric Mahurin wrote: >>> >>> >>> It's hard, I find, to come up with an exact description of what the >>> unarr?ay (unary unarray) operator does that fits every case. The >>> closest I've come is: *a = x means: a gets assigned that which, when >>> stripped of one level of array-ness, is x. Thus: >>> >>> *a = 1,2 # [1,2] stripped of [] is 1,2 so a is [1,2] >>> *a = *[1,2] # a stripped of [] is [1,2] stripped of [], so >>> # a is [1,2] >>> >>> def x(*args); end >>> x(1,2,3) # [1,2,3] stripped of [] is 1,2,3, so args is [1,2,3] >>> x([1,2,3]) # [[1,2,3]] stripped of [] is [1,2,3], so args >>> # is [[1,2,3]] >>> >>> Then there's >>> >>> a = 1,2 # automatic arraying -- the opposite of * >>> a = *[1,2] # un-arraying followed by automatic arraying :-) >>> >>> or something like that. >>> >>> >>> David >>> >> >> Maybe a simpler way to look at it is *a = x means a = [x], or simply >> enclose the rhs in an array before assignment. > > I'm not sure how that's different from what I was saying above. Or > did you mean a simpler way to say it? :-) > > > David > Hello. Yes, I wasn't trying to correct you. Just suggesting a simpler way of saying the same thing :-) Luca