Re: Some conservative Lua metamethod extension proposals
[
Date Prev][
Date Next][
Thread Prev][
Thread Next]
[
Date Index]
[
Thread Index]
- Subject: Re: Some conservative Lua metamethod extension proposals
- From: Dirk Laurie <dirk.laurie@...>
- Date: 2018年3月24日 09:05:59 +0200
2018年03月24日 8:11 GMT+02:00 Sergey Zakharchenko <doublef.mobile@gmail.com>:
>> IIUC, the OP's "conservative" proposal is merely that 'pairs' should
>> not discard extra arguments, i.e. it should trigger __pairs(tbl,...)
>> rather than just _pairs(tbl).
>
> Note I never wrote about changing meaning of any existing Lua core
> functions.
True, you do not suggest changing what 'pairs' does in the absence of
a metamethod. In fact, I wrote that interpretation precisely to
emphasize that the proposal that 'pairs' should have a second argument
did not come from you.
> Reread original email if that's not obvious.
Maybe you should take your own advice here. The original says clearly:
"If __pairs is invoked wth a second argument ..."
You can't change the way '__pairs' is called without changing 'pairs'
itself. The manual states: "pairs (t) ... If t has a metamethod
__pairs, calls it with t as argument." I see no way of implementing
your proposal that will not involve a change to "pairs (t[,opt]) ...
If t has a metamethod __pairs, calls it with t and opt as arguments."