[racket] weirdness with complex numbers

From: J. Ian Johnson (ianj at ccs.neu.edu)
Date: Mon Aug 6 18:18:35 EDT 2012

The identifier/number grammar is unlikely to change. If it really bugs you, perhaps you can re-provide make-rectangular as c or complex and have students write (complex real imag). You could also use @ notation and have them write @complex[real imag].
----- Original Message -----
From: "Todd O'Bryan" <toddobryan at gmail.com>
To: "PLT-Scheme Mailing List" <users at lists.racket-lang.org>
Sent: Monday, August 6, 2012 6:05:31 PM GMT -05:00 US/Canada Eastern
Subject: [racket] weirdness with complex numbers

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?

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." 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?

  Racket Users list:

Posted on the users mailing list.