Mailing List Archive: 49091 messages

## [REBOL] Re: The truth about scope

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

```

>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

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.