max
(max &rest numbers)
Returns the largest of its arguments. It is variadic and requires at least one argument; a lone argument is returned once checked to be a real (anything else signals a type-error). Comparison is by numeric value, mixing integers, ratios and floats freely.
It folds left as (a >= b) ? a : b, using the IEEE comparison. Two consequences are worth knowing when floats are involved: arguments that compare equal leave the leftmost one standing, so (max -0.0 0.0) is -0.0 while (max 0.0 -0.0) is 0.0; and a NaN is unordered, so the comparison fails and the right operand wins -- (max nan 1.0) is 1.0, (max 1.0 nan) is NaN. Every backend answers the same way.