Hi, Volker

> Aother trick:
>  a: context[
>   b: context compose[embedded-in: (self)]
>  ]
> everything you write in brackets in compose
> is replaced before makeing the context,
> so the (self) is a/self.

If you like object trick, look at this:

REBOL []

a1: context[
 _self: 'self
 b: 2
 self: context [hidden-in: '_self c: 1]
]
prin "this is 'a1 :" probe a1
print ["hidden 'b in 'a1 :" get bind 'b a1/hidden-in]
a2: make a1 [d: 2]
prin "this is 'a2 derived from 'a1:" probe a2
print ["hidden 'b in 'a2 inherithed from 'a1 :" get bind 'b a2/hidden-in]
print "now we set the hidden 'b in 'a1 at 5"
set bind 'b a1/hidden-in 5
print "and also the hidden 'b in 'a2 will change:"
print ["hidden 'b in 'a2 inherithed from 'a1 :" get bind 'b a2/hidden-in]
a3: make a2 [e: 3]
prin "this is 'a3 derived from 'a2:" probe a3
print ["hidden 'b in 'a3 inherithed by 'a2 and 'a1:" get bind 'b a3/hidden-in]
--
Playing with this 'self sostitution, you can make others "magic" things. For
example you can add new hidden words to an intemediate object and make an
embedded function which traverse the object hierarchy to find a context which
has a value for a given hidden word, and so on.

>
> -Volker
---
Ciao
Romano



-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.

Reply via email to