Type and double dispatch + nil consid�rations come to mind.�

nil <=> 7 gives?
7.0 <=> 3 gives ?

Object <=>: anObject

(self = anObject) ifTrue: [ ^0].

(self < anObject) ifTrue: [ ^ -1] ifFalse: [ ^ 1].

"otherwise let's raise an error"

What can now go wrong from here ?


Phil
On Monday, November 4, 2013, St�phane Ducasse wrote:
do you have a real use case?

Stef

On Nov 4, 2013, at 1:32 PM, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:

> Hi everyone.
>
> I�m wandering if there was any sort of a discussion about a spaceship method used in Ruby.
>
> The concept is that you should implement a method <=>
> that returns something negative if the receiver is smaller then a parameter,
> positive when the receiver is greater then a parameter,
> and 0 if they are equal.
>
> This way if you are implementing comparable object�s the only method you have to redefine is spaceship (<=>).
>
> Yes, I know that i Pharo you have to only redefine < and =. But maybe it would be interesting to use spaceship :)
>
> What do you think?
> Cheers!
> Uko




--
---
Philippe Back
Dramatic Performance Improvements
Mob: +32(0) 478 650 140 | Fax: +32 (0) 70 408 027
Mail:phil@highoctane.be | Web: http://philippeback.eu
Blog: http://philippeback.be | Twitter: @philippeback
Youtube: http://www.youtube.com/user/philippeback/videos

High Octane SPRL
rue cour Boisacq 101 | 1301 Bierges | Belgium

Pharo Consortium Member -�http://consortium.pharo.org/
Featured on the Software Process and Measurement Cast -�http://spamcast.libsyn.com
Sparx Systems Enterprise Architect and Ability Engineering EADocX Value Added Reseller