Hi Dan.

I have a somewhat different proposal.

Tested, but might not be 100% correct.

--------8<----------

: mixin-predicate-quot ( class -- quot )
     "members" word-prop [ >r class r> memq? ] curry ;

: define-mixin ( word -- )
     dup V{ } clone "members" set-word-prop
     dup define-class
     dup predicate-word over mixin-predicate-quot
     define-predicate ;

: add-instance ( class mixin -- )
     tuck "members" word-prop push define-class ;

: MIXIN: CREATE define-mixin ; parsing

: INSTANCE: scan-word scan-word add-instance ; parsing

! Example

MIXIN: sequence
INSTANCE: array sequence

M: sequence nth bounds-check nth-unsafe ;

--------8<----------

Slava

On 31-Jul-07, at 8:13 AM, Daniel Ehrenberg wrote:

> Dharmatech's idea of a fully class-based object system is a good one,
> but here's another idea: bringing Factor's object system a little
> closer to Haskell type classes. I, unlike Ed, don't have any code on
> it yet (which is a bad thing), but I have the proposal at
> http://useless-factor.blogspot.com/2007/07/how-to-make-ad-hoc- 
> polymorphism-less-ad.html
> (Apologies for the grandiose title.) Comments?

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to