# [plt-scheme] Test a numbers representation to see if it's complex?

Yes, my `0-imag-part?' fails for some cases. But you don't need to
define your own implementation of imaginary numbers.
Using the `SCHEME_COMPLEXP' and `SCHEME_COMPLEX_IZIP' from "inside PLT"
is enough. So all you need is to write a small MzScheme Extension.
Chongkai
Jens Axel Søgaard wrote:
>*
*>* The problem is that 3.0 and 3.0+0.0i is the same number.
*>* The real part and the imaginary part shares the exactness.
*>*
*>* So if you want to distinguish them, you need to defined
*>* your own implementation of imaginary numbers.
*>*
*>*
*>* > (0-imag-part? (- 3.0+0.5i 0+0.5i))
*>* #f
*>*
*>* > (0-imag-part? #i3.0)
*>* #t
*>*
*>* > (0-imag-part? #i3.5+0.0i)
*>* #f
*>*
*>*
*>* > (0-imag-part? 3.5+0.0i)
*>* #f
*>*
*>* > (0-imag-part? #i3.5+0.0i)
*>* #f
*>*
*>* > (0-imag-part? #e3.5+0.0i)
*>* #t
*>*
*>*
*>* /Jens Axel
*>*
*