[racket] weirdness with complex numbers

From: Jens Axel Søgaard (jensaxel at soegaard.net)
Date: Wed Aug 8 03:40:11 EDT 2012

2012/8/7 Todd O'Bryan <toddobryan at gmail.com>:
> I just discovered that the way you enter (and display) a number like
>
> 1/2 + (2/3)i
>
> in Racket (and Scheme, presumably) is 1/2+2/3i.
>
> I understand why that is, and can't think of what else to do, but has
> anyone had students get confused because the form looks like the i is
> in the denominator of the imaginary part?

I certainly have students that gets confused about what  1/2x   means.
Luckily their calculators will always print both the input typeset as math
and the output.

That is, if a student enters 1/2x believing it means 1/(2x) he will be
discover his mistake when he see 1/2 * x being printed back at him.

> What's more potentially confusing is that 1/2+2i/3 is a legal
> identifier in its own right.
>
> I'm working on a program that models basic algebra in the way that
> high school students are taught to do it, and one of my self-imposed
> rules has been that "math should look like math."

This is a very important principle.

> In other words, I'm
> trying to minimize the conversion gymnastics that students have to put
> up with when they enter math in calculators or computer programs. In
> that spirit, I'm not sure if it would be better to allow the
> inconsistency with the way order of operations normally works or just
> have students enter 1/2+(2/3)i (or 1/2+2i/3, maybe) and do the
> conversion behind the scenes.
>
> Anyone have any thoughts or prejudices one way or the other?

I don't think there is way around a custom parser for infix expressions.

/Jens Axel

Posted on the users mailing list.