```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

--
David A. Black
dblack / wobblini.net

```