Arlen:

Rational doesn't support BigInt because the necessary math functions do not support BigInt. And if you are going to have Rational support BigInt, you are most likely going to need BigFloat, which is something we don't have.

I have used Rationals with BigInts several times, and so far I didn't need bigfloats...


I personally do not like BigInt because it is incomplete, and because it is reinventing the wheel. I much rather see Phobos provide an interface to GMP, MPFR, or some other arbitrary precision arithmetic library, similar to
what you see with Haskell and Python.

CPython defines its own multi-precision numbers.

But I have not yet understood why D isn't using GMP as Haskell does. Maybe Don knows this answer.

In theory Open Source is meant to give a huge help to code reuse, in practice you see wheel reinvention all the time. D should use bigints from GMP, a garbage collector developed in conjunction with Rust and Mono developers, the back-end (that supports 32 bit Windows exceptions) on LLVM, etc.

Thankfully Phobos uses Curl :o)

Bye,
bearophile

Reply via email to