| cons*(3scm) | Scheme Programmer's Manual | cons*(3scm) |
NAME
cons* - cons up a chain of pairs
LIBRARY
(import (rnrs)) ;R6RS (import (rnrs lists)) ;R6RS
SYNOPSIS
(cons* obj1 ... objn obj) (cons* obj)
DESCRIPTION
If called with at least two arguments, cons* returns a freshly allocated chain of pairs whose cars are obj1, ..., objn, and whose last cdr is obj. If called with only one argument, cons* returns that argument.
This procedure is similar to list(3scm), with the difference that the last argument (rather than the empty list) becomes the cdr of last pair in the chain.
RETURN VALUES
Returns a single value, which is either obj itself or a chain of pairs.
EXAMPLES
(cons* 1 2 '(3 4 5)) => (1 2 3 4 5) (cons* 1 2 3) => (1 2 . 3) (cons* 1) => 1
APPLICATION USAGE
This procedure replaces constructs like (apply list a b x*). It is faster and handles the case where the last argument does not need to be a list. Depending on the Scheme implementation, it may also be used in the expansion of quasiquote(3scm) for constructs like `(,a ,b ,@x*).
COMPATIBILITY
This procedure is unique to R6RS.
ERRORS
This procedure can raise exceptions with the following condition types:
- &assertion (R6RS)
- The wrong number of arguments was passed.
- &implementation-restriction (R6RS)
- There is not enough free memory to hold the new pairs.
SEE ALSO
STANDARDS
R6RS
HISTORY
The first RnRS report to have this procedure was 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/.
| 2022-05-11 |