[REBOL] Sameness - an abstract approach.
From: lmecir::mbox::vol::cz at: 13-Feb-2003 15:21
Hi Romano and all,
> I should like to know how you (and the official doc) interpret this point.
> Perhaps all this stuff is not clear to me.
It may be necessary to understand "the nature" of the values to be able to
understand the sameness (or the equality).
What are Rebol integers?
================
We may admit, that the following sentence is true: "Rebol integers may
reside in computer memory". (Any objections?)
Although the above sentence looks too primitive to be useful, it allows us
to draw a surprising conclusion:
1) We know, that the computer memory is an abstraction these days - see
notions like: "logical memory", "virtual memory".
2) Since the computer memory is an abstracttion, it surely isn't able to
contain physical things, that is why Rebol integers are abstractions too.
What is an abstraction?
==================
I think, that an abstraction is a property, that some physical things have
in common. Let's suppose, that two computer registers represent a number 1.
We may say, that the number 1 is the property, that these registers have in
common - namely the fact, that they both represent the same number - number
1.
Now we can ask another question: are Rebol integers the mathematical
integers? They have got a lot in common, because mathematical integers are
abstractions exactly as Rebol integers. Nevertheless, there is at least one
property, that Rebol integers have, which isn't observable for mathematical
integers: there is a maximal Rebol integer.
Do Rebol integers have a colour?
=======================
Some physical things representing Rebol integers may be red, but that
doesn't mean, that all physical things able to represent Rebol integers are
red. Therefore I think, that Rebol integers don't have a colour property.
There is no need to ask Rebol designer to find out.
Do Rebol integers have a position?
========================
As an example take a block:
b: [1]
You may say, that the integer value 1 contained in the block B has got a
position 1. Even though you have got the right to say so, I have got the
right to ask:
Is the position a property of Rebol integers?
==============================
These answers came to my mind:
1) The position is a property of Rebol integers.
2) The position isn't a property of Rebol integers.
3) It is undecidable, whether the position is a property of Rebol integers.
4) There is only one man, who can and must be enforced decide, whether the
position is a property of Rebol integers and before he decides, no answer
can be given.
Which answer is correct?
=================
Let's use an experiment to find out. First, we can prepare a block C having
the length 2 as follows:
c: [1 1]
Now, let's have a function F defined as follows:
f: func [i [integer!]] body
I didn't specify the BODY of F, but somebody clever might try to surprise us
all. The documentation states (cited freely, any objections?): "we can
supply an integer value to the function F as its argument". Let's ask
another question:
Can F tell, whether it obtained the number 1 with the position 1 in C or the
number 1 with the position 2 in C?
==========================================================================
I think, that we all agree, that the function F cannot tell. (any
surprises?) This means, that if we can take the above cited information for
granted, we must come to the conclusion, that "Rebol integers don't have a
position", otherwise the position should have been known to F as the
property of the integer value supplied as the argument. If this is true,
how come, that we can tell, that "number 1 is at the position 1 in C"?
===============================================
Because that is the property of C.
Summary:
there is only one Rebol integer number 1 not having any position at all,
while we can have many positions referring to it.
Regards
-L