This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home. For a version of this page that may be more recent, see CyclicListsCowan in WG2's repo for R7RS-large.

Cyclic­Lists­Cowan

cowan
2010-10-12 00:26:56
2history
source

Circular lists

I support CyclesMedernach with the following changes:

Remove the words "newly allocated". Since cycles are immutable, there should be no way to tell if they share structure or not.

Clarify in cycle-rotate that k can be positive to rotate forwards (relative to the list passed to make-cycle) and negative to rotate backwards.

Add cycle, cycle-ref, cycle-for-each, and cycle-fold by analogy with R5RS list, list-ref, for-each, and SRFI 1 list-fold. (I believe that in WG2 we should always have a fold procedure for container data structures.)

Add cycle=? which checks that the contents of the cycles are the same (in the sense of eqv?) without regard to the current position of the cycle.