Hello [EMAIL PROTECTED]!
On 22-Giu-00, you wrote:
l> *Unset*
[...]
l> The problem is, that the difference
l> between words initialized to None, Unset or any other legal
l> value is small. You see some difference just because you see,
l> that Unset is a "second class" Rebol value as opposed to None,
l> which is "first class".
Hmm... this is an interesting point. I'd really like to hear what
Carl has to say about this...
l> The possible alternatives:
l> 1) Use initialized words and have no exception to the rule,
l> that we can get the value of any word. In this case the
l> simplicity wins. Example:
l> reduce [:word]
l> We may miss some typo protection.
Or, context should be made a little more flexible, with the
ability to add and remove words. Words would no more be added to
system/words; UNSET would remove a word from its context; words
not present in any context would simply be left "unbound" (causing
the error "Word has no value" instead of the current "Word is not
defined in this context"); when setting an unbound word, it would
be added to system/words. A refinement could then be added to SET
to make it possible to add a word to a specific context, so we
would gain the ability to easily extend objects, too.
I think it would be possible to retain a good deal of backward
compatibility this way --- only scripts that explicitly use UNSET!
would break, and perhaps attention would be needed for all those
NONEs that would result from "expressions without result".
Carl? :-)
l> *Armed errors:*
[...]
l> Well, that is one side of reasoning. The other one is, that
l> our code should be able to process values. As long as errors
l> are armed, they are only "second class" values that cannot be
l> handled with normal code without too much complication. OTOH,
l> disarmed Error can be handled with usual code. If we introduce
l> "second class" values, we may introduce complications too. I
l> am pretty sure, that even the Rebol interpreter could be
l> simpler and faster without the "second class" values.
Changing the way ERROR!s work would cause more compatibility
issues, tough; I'd like to hear from other subscribers what they
think about this...
Regards,
Gabriele.
--
Gabriele Santilli <[EMAIL PROTECTED]> - Amigan - REBOL programmer
Amiga Group Italia sez. L'Aquila -- http://www.amyresource.it/AGI/