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://github.com/schemedoc/manpages/
.
Markup created by unroff 1.0sc, March 04, 2023.