Rotates a ring, that is moves the insertion point.
hcl
rotate-ring ring how-many => object
ring⇩ |
A ring object created by make-ring. |
how-many⇩ |
A fixnum. |
object |
A Lisp object. |
The function rotate-ring
rotates ring, that is it moves the insertion point "back", which is the same direction that ring-pop would progress.
how-many is the number of positions to rotate. It has to be a fixnum, but otherwise is not limited.
rotate-ring
returns the element before the insertion point after the rotation (the one that (ring-ref ring 0)
would return if called immediately after rotate-ring
).
If a ring contains 3 elements or more, then:
(progn (ring-pop ring) (ring-pop ring) (ring-ref ring 0))
returns the same value as:
(rotate-ring ring 2)
but the second form does not remove an element from the ring, while the first form removes 2 elements.
LispWorks® User Guide and Reference Manual - 01 Dec 2021 19:30:35