Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!husc6!rutgers!ames!ucbcad!ucbvax!decvax!decwrl!labrea!glacier!jbn From: jbn@glacier.STANFORD.EDU (John B. Nagle) Newsgroups: comp.lang.lisp Subject: Re: Circular Lists - (nf) Message-ID: <16946@glacier.STANFORD.EDU> Date: Tue, 17-Mar-87 00:31:12 EST Article-I.D.: glacier.16946 Posted: Tue Mar 17 00:31:12 1987 Date-Received: Wed, 18-Mar-87 06:07:02 EST References: <2700001@uicsg.UUCP> <6900003@iaoobelix.UUCP> <5044@shemp.ucla-cs.UCLA.EDU> Organization: Stanford University Lines: 17 Summary: Could circularity be avoided by better packaging? Worth considering is whether a slightly different set of primitives might provide the functionality needed for back-pointers and true circularity without making refererence-count storage management impossible. Suppose we call the existing type of list pointer an "asymmetrical pointer" and introduce the notion of a "symmetrical pointer". A symmetrical pointer connects two objects and can be traversed in either direction. Symmetrical pointers can be altered by atomic operations which specify a pair of objects to be connected. Asymmetrical pointers cannot be altered once created. This is not a totally novel idea. See SLIP and Safe Mesa for examples. It's not necessarily LISP oriented, either. John Nagle