> (-i).reals
    (-0 -1)
    > Complex.new(0, -1).reals
    (0 -1)
    > ((-1)i).reals
    (0 -1)

This is precisely what I would expect to happen.

There is a postfix `i` operator for things like `1i`, but there is
also a constant `i`

    # from src/core/Complex.pm6
    constant i = Complex.new(0e0, 1e0);

When you do `-i` you are negating both the `0e0` and the `1e0`.

    > (-Complex.new(0, 1)).reals
    (-0 -1)

Note that you can't just do `-1i` either, because postfix operators
`i` happen before prefix operators `-`.
So you need to do `(-1)i` or `0-1i`.

On Thu, Jun 13, 2019 at 12:39 PM Sean McAfee <eef...@gmail.com> wrote:
>
> > bag i, 2i - i
> bag(0+1i(2))
>
> Well and good.
>
> > bag -i, -2i + i
> bag(0-1i, -0-1i)
>
> Huh?  But this works as expected:
>
> > bag Complex.new(0, -1), Complex.new(0, -2) + Complex.new(0, 1)
> bag(0-1i(2))
>
> Is this a bug, or is there a sense in which it's correct?
>

Reply via email to