Add Math methods to Numeric
Hi, I wanted to get thoughts on adding class methods from
Math as instance methods on
x.sqrt # vs Math.sqrt(x) x.log # vs Math.log(x)
Rust takes this approach and it (subjectively) feels more intuitive/object-oriented. It also seems more consistent with methods like
Updated by duerst (Martin Dürst) about 1 month ago
I support this.
x.sqrt is indeed more object-oriented that
Math.sqrt x. In an earlier discussion, it was pointed out that for Mathematicians,
sqrt(x) is more natural than
x.sqrt. Mathematicians can still use that notation, but also having the object-oriented notation in Ruby would indeed be great.
Updated by mrkn (Kenta Murata) about 1 month ago
I'm negative to this proposal. I don't think
Math.sqrt is the behavior or the property of a Numeric object. It is the positive square root function that maps from/to the set of non-negative real numbers.
If we introduce
Numeric#sqrt, we should expand its domain to negative numbers and Complex numbers. Also, it is better to consider other kinds of numbers, such as Quaternion.