lua-users home
lua-l archive

Re: [Proposal] Overload | for booleans

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


On 29/07/15 03:05 PM, Tim Hill wrote:
On Jul 29, 2015, at 7:53 AM, Soni L. <fakedme@gmail.com> wrote:
On 29/07/15 11:18 AM, Dirk Laurie wrote:
2015年07月29日 15:56 GMT+02:00 Soni L. <fakedme@gmail.com>:
Can we get true | false to be a thing?
debug.setmetatable(true,{
 __bor = function(x,y)
 assert (type(x)=='boolean' and type(y)=='boolean')
 return x or y
 end;
 __band = function(x,y)
 assert (type(x)=='boolean' and type(y)=='boolean')
 return x and y
 end;
})
I like that! But why do you call it a proposal?
It would be non-short-circuiting and/or.
--
Disclaimer: these emails are public and can be accessed from <TODO: get a non-DHCP IP and put it here>. If you do not agree with this, DO NOT REPLY.
function andx(c1, c2) return c1 and c2 end
function orx(c1, c2) return c1 or c2 end
...
if andx(a < 100, b > 300) then … end
etc. And of course easy to extend andx() and orx() to take varargs for as many expressions as you want.
—Tim
Still does branching (twice, even, because of the function call). The only difference is that now you evaluate both sides.
--
Disclaimer: these emails are public and can be accessed from <TODO: get a non-DHCP IP and put it here>. If you do not agree with this, DO NOT REPLY.

AltStyle によって変換されたページ (->オリジナル) /