[REBOL] Re: On mutability and sameness
From: lmecir:mbox:vol:cz at: 18-Jun-2001 3:17
Hi,
> Ladislav Mecir wrote:
> >
> > I try to reformulate my argument: "your rule is correct only
> > in the circumstances not specified by the rule"
> >
> > This is a sufficient condition for the rule to be considered
> > incorrect.
> >
>
> I'm sorry. I guess I need more coffee this morning, but I
> couldn't follow that one at all. Maybe we should bring this
> one to a close on the note that we simply agree to disagree.
I am not sure it is the right time, see below.
> Each of us has a model for what is going on with respect to
> references and mutability, and in fact we seem to have
> differing definitions for those words. I've chosen the one
> that I use because
>
> - I think it give me a simpler way to explain a wider
> range of REBOL phenomena,
> - I think it is consistent with conventional jargon
> in Computing Science, and
> - it allows me to compare/contrast REBOL behavior with
> that of other programming languages easily.
You helped me substantially to improve the wording of the
http://www.sweb.cz/LMecir/evaluation.html
Thanks a lot. Could you please check if the choice of notions is better now?
(You might find an interesting property of ERROR! values in there)
> YMMV, of course, and you're certainly entitled to use and
> promote a different model. I welcome any and all challenges
> to the model I'm using (because that's how we find bugs!).
>
> I think it's fair to call the model "incorrect" only if there
> is a piece of REBOL code that produces a result/effect that
> is different than the model predicts, using the terminology
> of the model in the way that I've been using it.
>
> As far as the case below:
>
> a: [8]
> bm [a/1/1: 1]
> a ;== 9
>
> all I can say is that BM is a very clever mini-interpreter
> that re-interprets its argument block as if it had been
> written
>
> a/1: a/1 or 1
>
> which -- in my model -- changes the first element of the
> block (referenced by A) by replacing the integer 8 with a
> different integer (9), and not by modifying the 8 in-place.
>
> As ingenious as BM is (and I mean that sincerely!) it extends
> set-path expressions in a way that is outside standard REBOL
> behavior:
>
> >> a: [8]
> == [8]
> >> a/1/1: 1
> ** Script Error: Cannot use path on integer! value
> ** Near: a/1/1: 1
>
> and therefore doesn't prove anything about whether my model of
> standard REBOL behavior correctly predicts standard REBOL
> behavior.
>
> Again, let me express my sincere appreciation for your deep
> understanding of REBOL and for your discussions and time.
>
> -jn-
BTW, did I say thank you?
Ladislav