lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

On 2019-08-17 1:34 p.m., Egor Skriptunoff wrote:
On Wed, Aug 14, 2019 at 11:11 PM Soni "They/Them" L. wrote:

    how about @self (returns the currently executing function object),
    (returns the value of the variable being assigned to) and @table
    (returns the table being currently constructed)?

    (@table would be particularly useful for some DSLs. note that all of
    these only affect the local lexical scope and don't work across
    modules/function call boundaries.)

Oh, yes!  Tables!  I like the idea of referencing the table being constructed:
   local vec = {x = get_x(), y = get_y(), len = (@.x^2 + @.y^2)^.5}

Positional references might also be useful:
   local a, b = {name = "a", next = @2}, {name = "b", prev = @1}

What about more crazy things?
   local function getxy() return x, y end
   local len = (@2^2 + @3^2)^.5, getxy()
(x = @2 and y = @3 are returned by getxy() but not assigned to variables)

This might be good if it didn't look so Perl-ish :-)

here's the thing tho, all the things I listed already exist through the debug library.