[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: table.pack/unpack (was: Lua 5.2 Length Operator)
- From: Rena <hyperhacker@...>
- Date: Mon, 16 Apr 2012 20:48:36 -0600
On Mon, Apr 16, 2012 at 20:45, chris <csrl@gmx.com> wrote:
> chris <csrl <at> gmx.com> writes:
>> Because the length operator is not stable, it does not make sense to me that
>> this would be the default in table.unpack. Rather, it seems more interesting
>> to me to have table.unpack look for an 'n' index and use it. Or make the index
>> range to unpack required parameters. A default argument should be stable.
>
> Sorry, one more point I left out. I've stated in the previous thread that the
> table.* functions are apparently meant for sequences. And this holds true with
> table.unpack applying the length operator (#t) for the default argument. So the
> odd ball out is the table.pack() api which does not always produce a sequence.
>
> If table.pack were to always produce a sequence such that
> table.pack(1,2,3,nil,5) returned {1,2,3,5} then the table.* api set unifies and
> the ambiguity goes away.
>
> table.pack() explanation would read as - Packs all given arguments into a
> sequence, discarding nil values. This would keep in line with Section 2.1 of
> the manual, and the rest of the table.* api. Obviously, that would change this
> particular api's use case.
>
> chris
>
>
That would ruin the common use case where table.pack is used to process varargs.
--
Sent from my toaster.