[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Lua 5.3: functional version of // operator?
- From: Miles Bader <miles@...>
- Date: Mon, 08 Jul 2013 15:35:31 +0900
One thing I've run into with Lua 5.3-work1 is that I want to make code
which is portable between different versions of Lua, and while this is
usually pretty easy by simply using runtime tests, one can't use
anything which is invalid syntax in earlier Lua versions, like the
"//" operator.
For instance, I can use the following style of "adaptable" code:
-- A version of floor that returns a true integer value in Lua 5.3.
--
local ifloor = math.ifloor or math.floor
To define an "idiv" function, which is basically math.floor(a/b), I'd
like to use the "//" operator in Lua 5.3, as it may be more efficient.
But I'm not sure how to write this, because 5.2 won't accept the "//"
syntax, even if the code is never executed.
For that reason, it would be nice if Lua 5.3 came with a standard
"math.idiv" function, which basically just returns a//b...
Then I could just write my own version adaptable local function like:
-- Returns math.floor (a / b)
--
local function idiv (a, b)
if math.idiv then
return math.idiv (a, b)
else
return ifloor (a / b) -- ifloor from above
end
end
Thanks,
-miles
--
Bacchus, n. A convenient deity invented by the ancients as an excuse for
getting drunk.