First, text messaging can be such a limiting medium.

Now, excuse me, but it's not me who needs "HTH" and a referral
to the REBOL docs.

Again, to review the flow of messaging [with notes added]: 

---- from the first -----
A recent exchange on the REBOL email list made me revisit
Ladislav Mecir's article "Rebol Words and Contexts, alias
Bindology" ++ note: see that word "revisit"? it implies i've
read it at least twice ++ 

[http://www.fm.vslib.cz/~ladislav/rebol/contexts.html] 

Mr.Mercir writes: 

"Two words are equal, if they have equal spelling, or if they
are aliases ... This knowledge can be used to define a Rebol
function which can tell us whether two words are aliases."

His word and definitional:

aliases?: func [
    {find out, if word1 and word2 are aliases}
    word1 [any-word!]
    word2 [any-word!]
] [
    found? all [
        equal? :word1 :word2
        not equal? spelling :word1 spelling :word2
    ]
]

which depends upon:

spelling: func [
    {return the spelling of a word}
    word [any-word!]
] [
    if word? :word [return mold word]
    if set-word? :word [return head remove back tail mold :word]
    next mold :word
]

But is this truth? 


--- end from the first --- 

This isn't truth. Spelling has nothing to do with it!

The correct test has its basis here and here alone:

aliases?: debate [
        word1 [any-word!]
        word2 [any-word!]
        ][
        either (not same? word1 word2) and (equal? word1 word2) [
                true
        ][      
                false
        ]
]

And the facts:

1. Two words are aliases if and only if their definitionals
("values") are equal AND they point to the exact same (one and
only one) definitional ("value") existing within REBOL
controlled memory.

>> alias 'func "def"
== def

>> aliases? 'func 'daf
== false
>> aliases? 'func 'def
== true

>> aa: 23
== 23
>> bb: :aa
== 23
>> aliases? 'aa 'bb
== false

>> cc: 23
== 23
>> aliases? 'aa 'cc
== false

>> alias 'aa "dd"
== dd
>> aa
== 23
>> dd
== 23
>> aliases? 'aa 'dd
== true

2. Two words with "identical looking" definitionals ("values")
point to two different objects in REBOL's global context
(memory). 

>> ff: "this is a string"
== "this is a string"
>> gg: "this is a string"
== "this is a string"

>> same? ff gg
== false
>> equal? ff gg
== true
>> aliases? 'ff 'gg
== false

>> ff == gg
== true
>> count? ff
== 16
>> count? gg
== 16
>> parse ff [gg]
== true
>> parse gg [ff]
== true

3. When one word is a pointer to another word, they both point
to the same definitional and REBOL looks up the definitional by
passing a chain (right-to-left) of the definitionals when
parsing (left-to-right), which gives true for both same and
equal

>> ff
== "this is a string"

>> hh: :ff
== "this is a string"

>> same? hh ff
== true
>> equal? hh ff
== true
>> aliases? 'hh 'ff
== false

>> parse hh [ff]
== true
>> parse ff [hh]
== true

Again, Mr. Mecir, even if you would have wrote correctly in your
"bindology" article, your concept of what is an alias in REBOL
and how to detect it (your functional definitional) are both not
truth, i.e., they're false, incorrect. 

-- what you should have wrote correctly (but would still be
false)----------------------------------------------------
What is necessary for two words to be *aliases*? Two words are
*aliases* if they are equal *have the same symbols in the exact
same sequence* and *don't have the same face-value spelling*.

-------- end of what you should have wrote correctly ---------

The final point is I've remained cordial through this exchange
and find your replies amusing in your complete missing what is
clear as if defending a mistake is more important than the
mistake itself.

Hopefully, you'll revisit your Bindology article with fresh
eyes.
 
Pier

________________________________________________
Get your own "800" number
Voicemail, fax, email, and a lot more
http://www.ureach.com/reg/tag
-- 
To unsubscribe from the list, just send an email to 
lists at rebol.com with unsubscribe as the subject.

Reply via email to