Ken, As a frequent user of complex numbers, I go from real to complex and back and very deliberately. In the most common scenarios, the end game involves complex numbers that should be real (imaginary parts being only roundoff error). I (cautiously) ignore the roundoff, compare the real parts and sometimes the modului of compex numbers. Your proposed implementation is ok, but I have a hard time seeing it being useful.
Bill -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Igor Stasenko Sent: Saturday, August 15, 2009 5:04 AM To: [email protected] Subject: Re: [Pharo-project] #< if at first you dont succeed.. 2009/8/15 Ken.Dickey <[email protected]>: > Taking a hint from the comments (yes, I do listen), here is a "less > complex" :) solution: > > Complex>> > < aNumber > "Not defined on Complex numbers" > > ^self asReal < aNumber asReal > > Complex>> > asReal > "Answer real-part of self if imaginary is zero else, error" > (imaginary = 0) > ifTrue: [^real] > ifFalse: [self error: 'Can''t convert to real'] > > Better? By reading a comment: "Not defined on Complex numbers" i wonder why implementation is different than following: Complex>> < aNumber "Not defined on Complex numbers" self shouldNotImplement ;) But yes, given the fact that Complex numbers could be used by someone in code as real numbers, and therefore expecting #< to work, an implementation proposed by you is plausible. > > -KenD > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > -- Best regards, Igor Stasenko AKA sig. _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
