Skip to content

Any number isComplexNumber should answer true #194

Description

@olekscode

I am not sure about this.

At the moment, isComplexNumber means "is this an instance of PMComplexNumber?" and isRealNumber means "is this an instance on Number which is not an instance of PMComplexNumber?"
Therefore,

(5 + 0i) isComplexNumber. "true"
5 isComplexNumber. "false"

(5 + 0i) isRealNumber. "false"
5 isRealNumber. "true"

Even though

(5 + 0i) = 5. "true"

In mathematics though, a set of real numbers is fully included into the set of complex numbers:
Every real number is complex.

Perhaps, we should have something like this:

Object >> isComplexNumber
    ^ self isNumber
    
Number >> isRealNumber
    ^ true
    
PMComplexNumber >> isRealNumber
    ^ false

The result would be:

(5 + 0i) isNumber. "true"
5 isNumber. "true"

(5 + 0i) isComplexNumber. "true"
5 isComplexNumber. "true"

(5 + 0i) isRealNumber. "false"
5 isRealNumber. "true"

Or maybe we should even have this:

(5 + 0i) isRealNumber. "true"
(5 + 2i) isRealNumber. "false"

What do you think?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions