[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Lua 5.3: Should min/max return a float, if it is given integer?
- From: Tim Hill <drtimhill@...>
- Date: Wed, 4 Jun 2014 21:08:02 -0700
On Jun 4, 2014, at 8:37 PM, Rena <firstname.lastname@example.org> wrote:
> I'd be very surprised if math.max(a, b) behaved any differently from:
> function max(a, b)
> if a > b then return a
> else return b
> i.e. no changing of types involved (and for that matter, not caring at all about types, as long as the operands have > defined).
> (Of course it's slightly trickier since math.max() accepts any number of values except zero, but the principle is the same.)
> Sent from my Game Boy.
I think the problem here is the historical placement of min/max in the math library. If Lua had global min() and max() functions then I suspect most people would expect what you say to be true, allowing for polymorphic min/max functions (for any type that defined < or __le). However, placement in the math library seems kinda-sorta to suggest that they work as floating point in keeping with the rest of this library.
If it were me, I’d go with the polymorphic form, but I doubt that this will happen.