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
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?
I am not sure about this.
At the moment,
isComplexNumbermeans "is this an instance of PMComplexNumber?" andisRealNumbermeans "is this an instance on Number which is not an instance of PMComplexNumber?"Therefore,
Even though
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:
The result would be:
Or maybe we should even have this:
What do you think?