| u8-list->bytevector(3scm) | Scheme Programmer's Manual | u8-list->bytevector(3scm) |
NAME
u8-list->bytevector, sint-list->bytevector, uint-list->bytevector - convert a list of integers to a bytevectorLIBRARY
(import (rnrs)) ;R6RS (import (rnrs bytevectors)) ;R6RS
SYNOPSIS
(u8-list->bytevector list) (sint-list->bytevector list endianness size) (uint-list->bytevector list endianness size)
DESCRIPTION
These procedures convert a list of exact integers to a bytevector according to size and endianness. The integers are encoded in the same order as they appear in list.The sint-list->bytevector procedure uses the two's complement representation and uint-list->bytevector is for unsigned integers. The u8-list->bytevector procedure is the same as bytevector->uint-list with a size of 1.
RETURN VALUES
Returns a newly allocated bytevector.EXAMPLES
(u8-list->bytevector '(1 2 3))
=> #vu8(1 2 3)
(uint-list->bytevector '(#xAA55 #x55AA #x4200) (endianness big) 2)
=> #vu8(#xAA #x55 #x55 #xAA #x42 #x0)
(sint-list->bytevector '(-2 -1 0 1 2) (endianness little) 1)
=> #vu8(254 255 0 1 2)
(let ((b (u8-list->bytevector '(1 2 3 255 1 2 1 2))))
(bytevector->sint-list b (endianness little) 2))
=> (513 -253 513 513)
(let ((b (u8-list->bytevector '(1 2 3 255 1 2 1 2))))
(bytevector->uint-list b (endianness little) 2))
=> (513 65283 513 513)
COMPATIBILITY
The u8-list->bytevector procedure is absent from R7RS-small. You can use the bytevector(3scm) procedure instead, but it uses a variable argument list, which is usually less efficient. The other procedures have no equivalent in R7RS-small.If the returned bytevector would be empty then the returned bytevector does not have to be newly allocated.
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.
SEE ALSO
make-bytevector(3scm), bytevector->u8-list(3scm), bytevector(3scm), endianness(3scm)STANDARDS
R6RSHISTORY
These procedures are new for R6RS, where they were based on SRFI-74.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-03-06 |