All Manuals > LispWorks® User Guide and Reference Manual > 37 The HCL Package

rotate-ring Function

Summary

Rotates a ring, that is moves the insertion point.

Package

hcl

Signature

rotate-ring ring how-many => object

Arguments
ring
A ring object created by make-ring.
how-many
A fixnum.
Values
object
A Lisp object.
Description

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).

Examples

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.

See also

ring-push
make-ring
ring-pop
ring-ref


LispWorks® User Guide and Reference Manual - 01 Dec 2021 19:30:35