Re: Allowing incongruent methods

Jonathan Bachrach <[email protected]> Tue, 20 Jul 2004 12:45:02 -0400
Newsgroups gmane.comp.lang.goo.general
Message-ID <[email protected]>
On Jul 5, 2004, at 8:41 PM, Chris Double wrote:

> On Mon, 5 Jul 2004 18:46:55 -0500, "Eduardo Cavazos" wrote
>>
>> Here's an example of something I'd like to do in a CLOS like language,
>> but haven't been able to. I'm wondering; does any language out there
>> allow this?
>
> Sisc Scheme's object system allows this (http://sisc.sourceforge.net).
> The following works fine:
>
> (define-generic range)
> (define-method (range (<number> a) (<number> b) (<number> s))
>   (if (> a b)
>       '()
>       (cons a (range (+ a s) b s))))
>
> (define-method (range (<number> a) (<number> b))
>   (range a b 1))
>
> (define-method (range (<number> b))
>   (range 0 b))
>
> #;> (range 1 5 1)
>  => (1 2 3 4 5)
> #;> (range 1 5)
>  => (1 2 3 4 5)
> #;> (range 1 5 2)
>  => (1 3 5)
> #;> (range 6)
>  => (0 1 2 3 4 5 6)
>
> Is Goo still being maintained?

i'm here if that's what you mean.  i've been contemplating a minor
release.  any suggestions/requests for features and/or fixes?

jonathan

> Chris.
> -- 
>   Chris Double
>   [email protected]
>