The most simplified definition I can offer is, that mutable Rebol
values can change their state, while immutable can't. Maybe Joel
can help.

The importance?
1) if you have an executable code as an immutable value, it cannot
be self-modifying
2) for immutable value is unimportant how many times and where it
is stored
3) there is no need to copy immutable values
4) there is no need to have a same? function for immutable values,
equal? is enough
5) the paradox of the type "value of value" is not a paradox for
immutable values
6) you don't have to analyse the code to find the dependencies
like "what else changes, if I change this?", if you use immutable
values
7) you have much less problems using multitasking with immutable
values

To your question:

Even the state of a protected word can be changed by Unprotect (it
may mean a big problem, if you are sure that nothing can happen,
and, all of a sudden, a friend's function unprotects your words.)

The table needs update, because after Gabriele asked, I am
becoming convinced, that disarm doesn't change the state of error
value. Moreover, Bind doesn't change words, it simply creates new
words. That means, that Bind is not a good example of a function
modifying words.

Regards
   Ladislav

----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, January 06, 2000 3:44 PM
Subject: [REBOL] Evaluation Re:(5)


> Can you provide a definition of mutable and immutable, Ladislav,
and
> explain why it's important.
>
> If a word is protected, is it then suddenly immutable, or is it
a
> deeper question than that?
>
> -Ted.
>
>
>
>
>
>

Reply via email to