Library Lisp:ring+.el provides additional functionality to that in standard library ring.el.
ring+.el includes the following functions:
‘ring-member’ – non-nil if item is a member of the ring (comparison with ‘equal’).‘ring-next’ – next item in the ring, after the given item.‘ring-previous’ – previous item in the ring, before the given item.ring-insert+extend’ – like ‘ring-insert’, but if ‘grow-p’ arg is non-nil, then enlarge the ring if it is full.ring-remove+insert+extend’ – ‘ring-remove’ item from ring, then `ring-insert+extend’ it.‘ring-convert-sequence-to-ring’ – convert sequence (array, list, vector, string) to a ringSee also: DoReMi for interesting uses of library Lisp:ring+.el.