(define printbuf (lambda (buf) (buf ':dump) (display "Empty? ") (display (buf ':empty?)) (newline) (display "Full? ") (display (buf ':full?)) (newline))) (define testbuf (lambda () (load "buffer.scm") (let ((buf (make-buffer 5))) (display "INITIAL") (newline) (printbuf buf) (display "ADDING A") (newline) (buf ':put! 'a) (printbuf buf) (display "ADDING B C D") (newline) (buf ':put! 'b) (buf ':put! 'c) (buf ':put! 'd) (printbuf buf) (display "GETTING TWO ELEMENTS") (newline) (display (buf ':get!)) (newline) (display (buf ':get!)) (newline) (printbuf buf) (display "ADDING E F G") (newline) (buf ':put! 'e) (buf ':put! 'f) (buf ':put! 'g) (printbuf buf) (display "GETTING FOUR ELEMENTS") (newline) (display (buf ':get!)) (newline) (display (buf ':get!)) (newline) (display (buf ':get!)) (newline) (display (buf ':get!)) (newline) (printbuf buf) )))