[REBOL] Re: Context - code included- 2nd version
From: lmecir:mbox:vol:cz at: 12-Sep-2001 1:24
I don't know if the discussion didn't start to be boring, but here are my
reactions:
> I want to say that if the binding has been different ("this context" was
> different) the word could be defined. If you ask its value after the
binding
> of word, you'll get a value, because "this context" (global+local) will be
> different.
I will try to interpret the above sentence and discuss it:
First of all I understood, that you defined : This Context is a collection
of all Global and Local Words. Am I right? (The definition is a bit
contradictory, because This Context is not a Context.)
; a Special word:
special: first to block! "foo"
; bind it to a context:
use special reduce [
bound: 'first reduce [special]
]
I bound the SPECIAL ('foo) to a USE context and stored the result to BOUND.
Nevertheless, the SPECIAL ('foo) still doesn't look changed. It still looks
like a Special Word. Are you trying to convince me that it shouldn't,
because it has been bound to the This Context?
> You prefer your interpretation, i think, because you want to keep your
> definition of context like a simple collection.
> I have the impression you don't like the concept of Context at all.
8^)
> You speak
> of bind (16.) after the definition of almost everything (global, local,
> special - context as collection) as if binding was a secondary propriety
of
> Context (and you say very little of bind function in 16.). For me Context
is
> not understandable well without the notion of binding.
The reason for that is much simpler. If I want to describe the behaviour of
BIND, I must speak about Contexts. If I want to speak about Contexts, I must
first define the notion, because that was my goal when I started to write
the article.
Basic fact # 1: My definition of the Rebol Context notion is the only
definition available.
Basic fact # 2: My definition of the Rebol Context notion differs from the
meaning the context notion usually has in other languages.
> Indeed, your definition of collection (11.) depends from the notion of
> bindings:
Not at all, it only uses a Rebol function the implementation of which I
wrote. When I did it I didn't need any notion of bindings. I needed only to
write something in Rebol.
> Rebol Contexts can be defined as some collections of Rebol Words. I
define a
> function, that can find out, if two given Words are bound to the same
> Context:
>
> ^^^^^^
> same-context?: func [
> ...
> not special? word2
> same? word1 bind use word1 reduce ['first reduce [word1] ]
> word2
> ^^^^^
>
> As i have already said: your same-context function is not correct: it can
only
> prove that every Special Word is not binded to other words, so if you want
> speak of collections, you must say that it is a collection with one item
(like
> the Zero?).
Incorrect. I am stating that if WORD1 is a Special Word, then the expression
same-context? word1 word2
yields TRUE if WORD2 is a Special Word and FALSE otherwise.
>You should say:
>
> Every single Special Word is a Special Context.
Incorrect. The collection of all Words that are in the SAME-CONTEXT as a
Special Word is the collection of all Special Words.
> Every Special Context is a collection of only one word.
Incorrect. See above.
> There are as many Special Contexts as Special Words.
Incorrect. See above.
> The number of Special Contexts is enlarge-able.
> It does not exist in Rebol one method to find all Special Contexts.
Incorrect. See above.
...snip...
Cheers
Ladislav