| bytevector-u8-set!(3scm) | Scheme Programmer's Manual | bytevector-u8-set!(3scm) |
NAME
bytevector-u8-set!, bytevector-s8-set! - modify a byte in a bytevector
LIBRARY
(import (rnrs)) ;R6RS (import (rnrs bytevectors)) ;R6RS (import (scheme base)) ;R7RS
SYNOPSIS
(bytevector-u8-set! bytevector k octet) (bytevector-s8-set! bytevector k byte) ;R6RS
DESCRIPTION
The bytevector-u8-set! procedure stores octet at index k of bytevector. The bytevector-s8-set! procedure stores the two's complement representation of byte.
RETURN VALUES
Returns unspecified values.
EXAMPLES
(let ((b (make-bytevector 16 -127)))
(bytevector-s8-set! b 0 -126)
(bytevector-u8-set! b 1 246)
(list
(bytevector-s8-ref b 0)
(bytevector-u8-ref b 0)
(bytevector-s8-ref b 1)
(bytevector-u8-ref b 1)))
=> (-126 130 -10 246)
COMPATIBILITY
The bytevector-s8-set! procedure is absent from R7RS. A possible implementation is shown below.
(define (bytevector-s8-set! bytevector k byte)
(let ((octet (if (< byte 0) (+ 256 byte) byte)))
(bytevector-u8-set! bytevector k octet)))
ERRORS
This procedure can raise exceptions with the following condition types:
- &assertion (R6RS)
- The wrong number of arguments was passed or an argument was outside its domain. The index k was not a valid index for bytevector.
SEE ALSO
bytevector-u16-set!(3scm)
STANDARDS
R6RS
AUTHORS
This page is part of the scheme-manpages project. It includes materials from the RnRS documents. More information can be found at https://weinholt.se/scheme/manpages/.
| 2021-02-28 |