Object Identity
[1/2] from: sergio::ruocco::disco::unimib::it at: 23-Feb-2003 11:33
Hi,
My friend Romano told me of issues you are having about identity and sameness in Rebol.
I stumbled in this paper, maybe could be helpful to your discussion.
http://www.cse.ogi.edu/~black/publications/ObjectIdentity.pdf
Ciao,
Sergio
--
______________________________________________________________________
Sergio Ruocco CS PhD student mailto:[sergio--ruocco--disco--unimib--it]
building U7, 4th floor, room 472 Università Statale di Milano-Bicocca
via Bicocca degli Arcimboldi 8 phone: ++39 02 6448 7874
20126 Milano cell: ++39 347 2519828
[2/2] from: joel:neely:fedex at: 23-Feb-2003 8:03
Hi, Sergio,
Thanks for the reference. At a first read, it appears to identify
some pros and cons for even being able to test identity from a
fairly "pure OO" perspective.
REBOL has some characteristics that differ from the mainstream
object-oriented model:
1) OBJECT! is only one of many data types, but values of many
standard data types can be thought of as entities with
composite state and type-specific behavior;
2) REBOL's type system is highly dynamic:
2a) it takes a unique "definitional" approach to binding time;
2b) all types (almost) are first-class;
2c) there's a high degree of reflectivity;
2d) it's object model is totally classless, without the use of
encapsulation or inheritance -- an object can serve as an
exemplar for creating a new object, but there are no
class-to-subclass, class-to-instance, parent-to-child, or
prototype/delegate relationships as found in various other
languages;
2e) once created, an object's attributes may be examined or
redefined (e.g. replacing a method with a scalar value,
replacing one method with another -- although binding is
a bit tricky at that point).
With all of that said, perhaps you have thoughts on some other
issues that were part of the discussion:
1) What does "identity" mean for non-object types? (e.g. are
all occurrences of the integer 2 to be identified or not?
If so, should instances of 2.0 be identified with 2?)
2) What should "equality" mean for functions?
3) What should "equality" mean for objects (which can have
attributes of type FUNCTION!)?
Sergio Ruocco wrote: