Scheme's numeric tower is one of the best in extant languages. Take a look at it. Of course, its dynamic typing is poorly suited for Rust.

Arbitrary-precision arithmetic can get you mathematically perfect integers and rational numbers, but not real numbers. There are an uncountably infinite number of real numbers and sophisticated computer algebra systems are devoted the problem (or estimates are used, or you become unable to compare two real numbers for equality). The MPFR C library implements arbitrarily high precision floating point, but that still has all the pitfalls of floating-point that you complain about. For starters, try representing sqrt(2) and testing its equality with e^(0.5 ln 2).

In general, Rust is a systems language, so fixed-size integral types are important to have. They are better-behaved than in C and C++ in that signed types are modulo, not undefined behaviour, on overflow. It could be nice to have integral types that are task-failure on overflow as an option too. As you note, bignum integers are important too; it's good they're available. I think bignum rationals would be a fine additional choice to have (Haskell and GMP offer them, for example).

-Isaac


On 01/11/2014 12:15 AM, Lee Braiden wrote:
This may be go nowhere, especially so late in Rust's development, but I
feel like this is an important, relatively small change (though a
high-profile one).  I believe it could have a large, positive impact in
terms of targeting new developer communities, gaining more libraries and
applications, giving a better impression of the language, AND on
performance and futureproofing.

However, a lot of people who are interested in performance will probably
baulk at this, on first sight.  If you're in that group, let me
encourage you to keep reading, at least until the points on performance
/improvements/.  Then baulk, if you like ;)

Also, I said it in the post as well, but it's late here, so apologies
for any readability / editing issues.  I tried, but sleep beckons ;)


http://blog.irukado.org/2014/01/an-appeal-for-correct-capable-future-proof-math-in-nascent-programming-languages/


--
Lee



_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to