[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Possible language extension: colon-notation in an expression as shorthand for instance-specific method
- From: Dolphin <dhawkins@...>
- Date: Mon, 26 Jan 2009 21:31:51 +0000 (UTC)
Mark Tomczak <mtomczak <at> wildpockets.com> writes:
>
> Greetings all!
> We're considering a modification to the version of Lua embedded in our game
engine that would allow for this construct (which is currently a syntax error
in Lua):
>
>
> CallbackManager.postMyCallback(myInstance:instanceMethod)
>
> Under the present language rules, myInstance:instanceMethod is an error (as
I understand it) because the colon notation is only valid in the context of
function calls and function declarations, but is not valid in the context of
specifying a function value. Currently, we can accomplish this goal by instead
making the statement "CallbackManager.postMyCallback(function ()
myInstance:instanceMethod() end)", but that seems to be a great deal more
typing than should be necessary.
>
>
> I picked the IRC channel's collective brain on this issue, and we discussed
the performance impact aspects of this design. But I also wanted to ask the
mailing-list community: is there any syntactical reason that I would want to
avoid allowing myInstance:instanceMethod to become a valid construct outside
of a function declaration (as, for instance, a shorthand alias for
constructing the closure as I described)? I'm nervous about getting halfway
down the road of trying out this modification and then running headlong into a
language ambiguity.
>
>
> Thank you for the input!
>
> -Mark
Have you considred doing something like:
CallbackManager.postMyCallback(myInstance.instanceMethod,myInstance)
or
CallbackManager.postMyCallback(myInstance, 'instanceMethod')