Damian Conway <[EMAIL PROTECTED]> writes:
> Paul Johnson wrote:
>
> > I've always found the word "like" to be very wishy-washy in a computer
> > langauge. In what way is newbaz like baz? And just how alike are they?
> > There must be a better way to describe this.
>
> Perhaps:
>
> method set_baz($newbaz is compatible($.baz)) { $.baz = $newbaz }
> method set_baz($newbaz is typeof($.baz)) { $.baz = $newbaz }
FYI Ruby has:
a.type <= b.type or a.type == b.type
where the various operators (<, >, ==, != ...) are overloaded
according to the subtyping relation.
as for me,
- i find the "==" very readable,
- but i'm not sure "<=" is very readable
(who knows that a supertype is "greater", and a subtype is "smaller")
i prefer a.is_a?(b.type)
....
<=> is also defined but it seems broken since it returns 1 when there
is not subtyping relationship between 2 types.