Mailing List Archive: 49091 messages

## [REBOL] Re: Sameness - a pragmatic approach.

### From: lmecir:mbox:vol:cz at: 11-Feb-2003 13:51

```
Hi Gabriele,

----- Original Message -----
From: "Gabriele Santilli"

...
> I  don't think the problem is well defined, unless you are able to
> identify  V  amongst  any copy of V.
>  I.e. you would not be able to
> solve the problem in this case:
>
>    v: 1
>    b: [1]
>    insert tail b v
> So  we  have two choices: either decide that immutable values that
> are  equal are to be considered the same value (so that both V and
> the two values in the block are the same value), or that immutable
> values  are  never  the same (so that we have three different "1"s
> above).  I  am  inclined  for  the  latter  just because it avoids
> another  layer  of  abstraction  that  is not useful for any other
> things except the SAME? function.
>
> Regards,
>    Gabriele.

I am not able to identify the position of V uniquely in the case you specified, but my
problem is a legal problem even though it may not be uniquely solvable sometimes. The
same problem occurs below:

v: [1]
b: reduce [v]
insert/only tail b v

and (like you did above), Romano might tell me, that this proves, that indiscernible
mutable values are never the same when they are at different positions in a block. Is
this reasoning useful for the problem? I doubt it, because my approach gives me the provably
optimal solution.

Moreover, there is one more trouble with your: "immutable values are never the same"
approach. In my article I started by defining the identity and then I was able to define
mutations, mutability and immutability. If you start the other way round, then there
is a trouble, that you use undefined notions and you have to give the meaning to mutations/mutability
first, which may be difficult/ambiguous. (See e.g. the discussion on mutability of dates,
etc., where my identity-dependent definition gives different results, than another -
yet to be written - definition might yield).

Regards
-L
```