|
David Demelier wrote:
At the moment, my preferred solution would be math.type (like io.type, lpeg.type, etc.): * no new global variables * no new names * no unfamiliar calling conventions * if people remove debug functions, they probably won't make an exception for harmless functions like (sub)type * the only reason to remove `math` is if you don't have floats in which case this function becomes obsolete anywayYes, math.type looks absolutely the best solution!
Actually, you don't necessarily remove math[] if you don't have floats.For my Programmable Brick Lua (pbLua) for LEGO MINDSTORMS NXT based on Lua 5.2 I set the default number type to int, but implemented a single precision float library so that pbLua could have basic trig and log functions that gave single precision float output.
However, handling the float results resulted in a special userdata type which was a general pain in the neck to use.
I am about to build a new version based on Lus 5.3 Work 1 that will (I think) be a huge improvement, and will simplify the handling of mixed numerical types.
I'm looking forward to playing with that! Ralph