[REBOL] Re: [refactoring s-c?]
From: lmecir:mbox:vol:cz at: 17-Mar-2002 8:44
Hi Pat,
you are doing well, don't give up (use the source, Luke...), your mail is
nice.
<<Pat>>
...snip...
Assertion 1 : nonsame returns a word bound to another context.
Assertion 2 : this context is created by use.
Assertion 3 : nonsame returns a word with the same spelling.
...snip...
2. From (1) I have learned that use was required to create a new word with
the same spelling but different. As for comparing nonsame1 and nonsame, I
have learned nothing. As far as I can tell they are equivalent :
<</Pat>>
NONSAME1 and NONSAME look so much equivalent, that it confused even me. The
only difference is the usage of 'first. That is the source of the trouble in
NONSAME1:
same? 'first nonsame1 'first
** Script Error: first has no value
** Where: nonsame1
** Near: first [first]
If we try this for NONSAME, we will get:
same? 'first nonsame 'first
== false
<<Pat>>
...snip...
3. Why reduce ? I have still no idea,
...snip...
<</Pat>>
Just in case you need it, here is the reason for REDUCE:
word: 'a
block1: [word]
block2: reduce [word]
block3: reduce [[word]]
block4: reduce [reduce [word]]
<<Pat>>
...snip...
5. Epilogue
Learning that I know nothing is indeed a valuable lesson. Knowing that is
certainly better than pretending to know something that I don't. I don't
know if I am ready for understanding the truth. It is not for the apprentice
to decide. I have spent half my day with all these trials and must return
now to a normal life ! Hoping for the best
Patrick
<</Pat>>
Nice epilogue :-) My feelings are similar, because my implementation of
S-C?, although pretending to be correct, was in fact incorrect. Hope the
trial and error didn't exhaust you too much. Now it should be clearer, but
feel free to ask, if anything remains unclear.
Best regards
L
P.S. The newest version of [Contexts] is at:
http://www.rebolforces.com/~ladislav/contexts.html
P.P.S. How do you like the change in the UNBOUND? function?