While reading through section 4.3 Numbers of the Reference, I noticed this:
The precision and size of exact numbers is limited only by available memory (and the precision of operations that can produce irrational numbers). In particular, adding, multiplying, subtracting, and dividing exact numbers always produces an exact result.
I think that means that this code:
(let loop ([n 0])
(displayln n)
(loop (add1 n)))
...will run until the heat death of the universe, or the memory on the machine is consumed by Racket's insatiable need to store more digits, or (more likely) until the user gets bored and hits ^C. Do I have that right?
How are exact numbers being stored to allow this, and what are the performance implications?