Might help to think of rebol "objects" more as "proto-types"

see: http://en.wikipedia.org/wiki/Prototype-based_programming


On 10/3/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
>
> Glenn:
>
> > Hi all! I'm trying to learn Rebol by actually writing something with it.
> :-)
>
> Always the best way! Welcome to the Rebolworld!
>
> > How do I differentiate between static class methods and 'normal'
> > class methods?
>
> I think the difficulty here is that REBOL doesn't have methods and classes
> in
> anything like the classic Smalltalk way.
>
> What it has is *objects* -- which are more limited in some ways and more
> flexible in others. But also confusingly named -- the term object brings
> to mind
> associations from other languages. A REBOL object is also called a content
> and in some ways that is a less confusing term.
>
> So there are no classes as such. A context can be cloned, but then you
> have
> (usually -- others can leap in here with the exceptions) separate copies
> of all
> its contents.
>
> As an quick'n'dirty (and non-error-trapped) example of the traditional
> stack
> class/method.....The first version you and I might write may look like
> this:
>
> stack: make object! [
> stack-data: copy []
>
> push: func [item] [insert stack-data item]
> pop: func [/local item] [item: stack-data/1 remove stack-data return item]
> ]
>
> And we can use it like this:
>
>
> stack1: make stack [] ;;one actual instance
> stack2: make stack [] ;; another one
>
> stack1/push 1
> stack1/push "x"
> stack2/push stack1 ;; save stack1 on stack2 -- why not!?
> stack2/push 99
> stack1/pop
> == "x"
> stack2/pop
> == 99
>
> The drawback (or strength!) of this design is when we save stack1 or
> stack2
> to a file. What is saved includes all the functions in each case. For a
> real-world object that could be a lot of duplicate code. Even for a toy
> stack it
> means extra work if we want to change the code in each instance.
>
> I wouldn't design a REBOL stack that way if it was to be persistent data.
> It's just an example of the design different from a "pure" OO language.
>
> Sunanda.
> --
> To unsubscribe from the list, just send an email to
> lists at rebol.com <http://rebol.com> with unsubscribe as the subject.
>
>


--
... nice weather eh

-- 
To unsubscribe from the list, just send an email to 
lists at rebol.com with unsubscribe as the subject.

Reply via email to