[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: [Proposal] .name global indexing (Was: Re: 'with' statement)
- From: Alloyed <alloyed@...>
- Date: Sun, 13 Mar 2016 16:05:21 -0400
On 03/12/2016 05:37 PM, Andrew wrote:
> On 12/03/16 17:02, Rena wrote:
>> On Mar 12, 2016 9:57 AM, "Andrew Cannon" <ajc@gmx.net <mailto:ajc@gmx.net>> wrote:
>>>
>>> On 11/03/16 09:24, Dirk Laurie wrote:
>>>> 2016-03-10 17:55 GMT+02:00 Coda Highland <chighland@gmail.com
>> <mailto:chighland@gmail.com>>:
>>>>
>>>>> At this point you might as well use _.a = 1 and then you no longer
>>>>> even need a with statement.
>>>>
>>>> I use local names consisting of one capital letter instead of _.
>>>> Idioms like "for _,value in pairs(tbl) do" cultivate a habit that
>>>> the underscore is used for return values that one does not
>>>> intend to refer to.
>>>>
>>>
>>> Perhaps this syntax could be extended to allow already initialized table members
>>> to be used in initialization later members, a feature which I have sometimes
>> missed:
>>>
>>> eg:
>>>
>>> local t = {
>>> a = x1 * x2,
>>> b = _.a + 1
>>> }
>>>
>>> The '_' in this case would reference the table currently being built.
>>>
>>> Andrew
>>>
>>>
>> I think `b = t.a + 1` would be more natural, but I don't know how doable it is.
>>
>
> ok, bad example! - consider:
>
> func( { a = x1 * x2; b = _.a + 1} )
>
> -a
>
>
How about something like:
function with(t, fn)
setfenv(fn, t)
fn()
return t
end
local t = with({}, function()
a = x1 * x2
b = a + 1
end)
I don't like the idea that the order of a table literal might matter,
especially for cases where tables are generated by code.
- References:
- 'with' statement, Dirk Laurie
- Re: 'with' statement, Roberto Ierusalimschy
- Re: 'with' statement, Rena
- RE: 'with' statement, Thijs Schreijer
- [Proposal] .name global indexing (Was: Re: 'with' statement), Soni L.
- Re: [Proposal] .name global indexing (Was: Re: 'with' statement), Coda Highland
- Re: [Proposal] .name global indexing (Was: Re: 'with' statement), Dirk Laurie
- Re: [Proposal] .name global indexing (Was: Re: 'with' statement), Andrew Cannon
- Re: [Proposal] .name global indexing (Was: Re: 'with' statement), Rena
- Re: [Proposal] .name global indexing (Was: Re: 'with' statement), Andrew