lua-users home
lua-l archive

[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.