Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] Re: The truth about scope

From: lmecir:mbox:vol:cz at: 15-Apr-2005 7:42

A short terminological "detour":
>Hi Volker, > >On Thursday, April 14, 2005, 1:12:08 PM, you wrote: > >VN> i guess you made a typo and now we have a misunderstanding. > >Well, no. > >But, that is an implementation detail. > >The position in series is kept in the value. So, S and B/1, from >the point of view of implementation, are two distinct but >identical values. >
This deserves one more comment I think. My POV is: *Value sameness doesn't depend on implementation at all.* Proof: For every mathematician (and some other people too, I hope) knows, that there is only one number one (1). It doesn't matter, that a computer language implementor chooses (practical reasons) to "store" the value at different "positions" in the computer memory. Everybody knows, that all 1's are actually just one (mathematical) 1. Although you surely could say, that the "1's" "stored at distinct places in the memory" are "distinct but identical", such a sentence doesn't have much sense, regardless of the implementation, because you are coupling the number with something, that is not a property of the number at all - the place in the computer memory where the number "resides".
> Of course, Ladislav is right in saying that >because you cannot discern them, they are the same. However, they >are not in the current implementation, >
This is the point showing an "implementation-dependent" look at identity. ....
>To conclude, I agree with Ladislav that [1 1] may be considered a >series containing the same value twice, and I agree that the >position in the series is not an attribute of the value. However, >we know that in the current REBOL implementation a block is an >array of value slots and an integer fits one value slot, so [1 1] >is two value slots with two values (which are identical). I agree >that this is an implementation detail and that it is irrelevant. > >Regards, > Gabriele. >
Conclusion: The main difference, as Gabriele pointed out, is terminological. An implementation-independent terminology is less confusing. (Does not force us to use notions like "distinct but identical"). The only "disadvantage" of it is, that it doesn't try to "directly" describe the implementation, although there aren't any real obstacles to use it when describing the implementation and say, that "one value 1 is stored at two places in the computer memory". Some may feel a "lack" when speaking about modifications like: (implementaion-dependent terminology): I had two "distinct" 1's in the computer memory. I changed the first one to 2. Now I have got one 1 and one 2 in the computer memory. (implementation-independent terminology): I had number 1 "stored" (I can use a notion "referenced by" or "referred to" if I prefer) at two places in the computer memory. I changed the first memory place (Not number 1, nobody is actually able to change number 1!) to "contain" number 2 instead. Now I have got number 1 "stored" at one place in the computer memory and number 2 "stored" at another place in the memory. -Ladislav