[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
**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 <hyperhacker@gmail.com> 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
> end
> end
>
> 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.
—Tim