[REBOL] object method binding
From: media::quazart::com at: 8-Nov-2001 9:52
Hello world,
a question for context/binding experts
how do I re-define a method'd function so that it uses a variable defined in
the original function but which does not access data within the object
itself, and which its binding is unknown?
for example:
I know of the existence of the following object:
weird: make object! [
weird-func: func [][
print external-variable
]
]
the problems is:
----------------
Because the code was built within a dynamic loop, at the time of creation,
external-variable
WAS defined so rebol linked (or bound?) that word to
whatever it meant at that time. but as you see, it does not reference a
value within weird itself but rather a value that it linked outside of
weird, so somehow its still valid, but we do not know exactly what
external-variable "points" to...
Now the question:
--------------------
how can I replace the weird method to another function but still use the
original's external-variable value...
like if I wanted to do
my-extension: "ext"
extended-weird: func[][
print ["I have extended" external-variable my-extension]
]
weird/func: :extended-weird
... of course the above WILL fail ...
in the context of this problem, there is simply no way to trap the original
definition of weird, so that I can create a global to re-assign
external-value in my own function...
ain't context and binding fun!!?
Thanks in advance!
-Maxim