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] >