Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

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. 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: