David Kastrup <d...@gnu.org> writes: > Mark H Weaver <m...@netris.org> writes: > >> David Kastrup <d...@gnu.org> writes: >> >>> Mark H Weaver <m...@netris.org> writes: >>> >>> object identity is checked by eq? and is conceptually different from >>> value equality. >> >> The Scheme standards don't support your view. The _only_ difference >> between 'eq?' and 'eqv?' is that 'eqv?' is well-defined on numbers and >> characters, whereas 'eq?' is unspecified for those types. > > And why would that be if numbers were proper objects? The difference is > _exactly_ there because they aren't.
I don't know what you mean by "proper objects". I guess maybe you mean "objects with identity". >> Numbers and characters do not have any notion of "object identity", >> apart from operational equivalence. > > Which is why it does not make a lot of sense to assign "object > properties" to them. I understand that in the dominant "object oriented" programming communities of today, the word "object" usually implies mutability and identity, but the Scheme standards use the term differently. In the Scheme standards, the word "object" is synonymous with "value". R5RS section 1.1 states "Types are associated with values (also called objects) rather than with variables." Furthermore, R6RS consistently calls numbers "objects", even though they lack "object identity" in the sense that you mean. Mark