Next: Types Answer 3, Previous: Types Answer 1, Up: Answers to Exercises

#### 3.7.34 Types Tutorial Exercise 2

‘`inf / inf = nan`’. Perhaps ‘`1`’ is the “obvious” answer. But if ‘`17 inf = inf`’ , then ‘`17 inf / inf = inf / inf = 17`’, too.

‘`exp(inf) = inf`’. It's tempting to say that the exponential of infinity must be “bigger” than “regular” infinity, but as far as Calc is concerned all infinities are the same size. In other words, as ‘`x`’ goes to infinity, ‘`e^x`’ also goes to infinity, but the fact the ‘`e^x`’ grows much faster than ‘`x`’ is not relevant here.

‘`exp(-inf) = 0`’. Here we have a finite answer even though the input is infinite.

‘`sqrt(-inf) = (0, 1) inf`’. Remember that ‘`(0, 1)`’ represents the imaginary number ‘`i`’. Here's a derivation: ‘`sqrt(-inf) = sqrt((-1) * inf) = sqrt(-1) * sqrt(inf)`’. The first part is, by definition, ‘`i`’; the second is `inf` because, once again, all infinities are the same size.

‘`sqrt(uinf) = uinf`’. In fact, we do know something about the direction because `sqrt` is defined to return a value in the right half of the complex plane. But Calc has no notation for this, so it settles for the conservative answer `uinf`.

‘`abs(uinf) = inf`’. No matter which direction ‘`x`’ points, ‘`abs(x)`’ always points along the positive real axis.

‘`ln(0) = -inf`’. Here we have an infinite answer to a finite input. As in the ‘`1 / 0`’ case, Calc will only use infinities here if you have turned on Infinite mode. Otherwise, it will treat ‘`ln(0)`’ as an error.