## [REBOL] Re: The truth about scope

### From: rotenca:telvia:it at: 17-Apr-2005 2:52

Ladislav Mecir wrote:>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". >You already know that our POV are not exactly the same on this question. I do not want to start a flame, but i find it an interestering question, you know, and i can't resist to start my joke. DISCLAIMER: If you do not want to be confused about Rebol language, stop reading at this point or continue at your own risk. The problem of your "proof" is that it is true that "every mathematician .... knows, that there is only one number one (1)", but computers are not mathematicians . The number "1 is only one" only from a logical point of view, a point of view that, until AI will develop a little more, no computer can understand or can have also a raw idea of what it can mean. So i must conclude that "1 is equal to every other 1" only in an human head, not in the real world in which i find some computers which are able to run the program "rebol.exe". Well, what are you speaking of? My thesis: "Rebol number are not mathematical number" The proof: x: 1 / 2e305 ;== 5E-306 x = 0 ;== false y: x + 1 - 1 ;== 0.0 y = 0 ;== true As you can see this behaviour is against mathematical rules. So Rebol numbers are not the same as mathematical numbers. Said in other words, you are speaking as Rebol number would be THE REAL numbers, but this is not true; they are only machine states which with a little effort (and some round) we can use to model, in our head, real numbers. So when you speak of Rebol values, you should not think they are exactly abstract matematical values. And what you think it is true for matematical numbers it is not always true for Rebol numbers. You could answer that the different behaviour of Rebol number is only an implementation detail, but if this is true, it is also true that decimal! are the same of integer! (the difference is only an implementation detail) and that Java number, Visual Basic number, and C number are the same (the difference are only implementation details), so the is no real difference between this languages and Rebol about number.>> 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. >... >Well if you think as this, you should also agree on these thesis: Two strings in Rebol can be the same or cannot be the same. x: "house" same: reduce [x x] not-same: reduce [copy x copy x] But in my head the word "house" is only one, so this behaviour is implementation-dependent. And also: Two words in Rebol can be the same or cannot be the same. x: 'house same: reduce [x x] not-same: reduce [first to-block mold x x] But in my head the word "house" is only one, so this beahviour is implementation-dependent. In the last example, because the main difference between the two not-same words is in binding, your POV should be that "Rebol binding is not a propriety of the Rebol language but only an implementation detail". Going this way you will agree also on this: Every propriety of the rebol language is an implementation detail. And my conclusion is: I you want to speak of sameness in the Rebol language, you can only speak of its implementation.>(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. >Computer are unable "to change number 1" only because they are unable to store them. Numbers are only in a man's head or in a Platonic world (for some matematicians, and between them, the great Kurt Godel), but nobody can believe they are stored in computers.>-Ladislav >End of joke. -- Ciao Romano Paolo Tenca