When we're printing things, the hashCode is pretty much only useful for noticing if something is circular. However, in medium-to-large objects, it won't "pop out at you" if an object is circular; you have to read and remember all the hashCodes!
Common Lisp's syntax has a notion of labeled objects to enable parsing and printing circular objects (CLHS 2.4.8.15, CLHS 2.4.8.16). Essentially:
When we're printing things, the hashCode is pretty much only useful for noticing if something is circular. However, in medium-to-large objects, it won't "pop out at you" if an object is circular; you have to read and remember all the hashCodes!
Common Lisp's syntax has a notion of labeled objects to enable parsing and printing circular objects (CLHS 2.4.8.15, CLHS 2.4.8.16). Essentially:
This is a lot more readable than addresses/hashCodes! Importantly: