Scheme Programmer's Manual

NAME

u8-list->bytevector, sint-list->bytevector, uint-list->bytevector - convert a list of integers to a bytevector

LIBRARY

```(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(3) 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.

make-bytevector(3), bytevector->u8-list(3), bytevector(3), endianness(7)

R6RS

HISTORY

These procedures are new for R6RS, where they were based on SRFI-74.

NAME
LIBRARY
SYNOPSIS
DESCRIPTION
RETURN VALUES
EXAMPLES
COMPATIBILITY
ERRORS