Jay McCarthy <jay@racket-lang.org>
This package defines an imperative, overwritting ring buffer that holds a finite number of elements and may be used as a sequence.
procedure
( ring-buffer? v)→boolean?
v:any/c
procedure
( empty-ring-buffer max)→ring-buffer?
procedure
rb:ring-buffer?
procedure
( ring-buffer-push! rbv)→void?
rb:ring-buffer?
'(1 2 3)
'(2 3 4)
procedure
( ring-buffer-pop! rb)→(and/c any/c (not/c false/c ))
rb:ring-buffer?
'(1 2 3)
3
'(1 2)
'(1 2 4)
procedure
( ring-buffer-ref rbi)→(or/c any/c false/c )
rb:ring-buffer?
'(1 2 3)
2
3
procedure
( ring-buffer-set! rbiv)→void?
rb:ring-buffer?
This interacts with ring-buffer-push! .